2015-02-03 3 views
1

Ну, я новичок в mongodb/mongoose, поэтому некоторые из этих концепций все еще немного грязны в моей голове. Может кто-нибудь объяснить мне разницу между следующими:MONGOOSE - ObjectId ссылка на коллекцию VS Массив коллекции

var PersonSchema = new Schema({ 
    name : String, 
    groups: [{ type: Schema.ObjectId, ref: 'Group' }] 
}); 

и

var GroupsSchema = new Schema({ 
    name : String 
}); 

var PersonSchema = new Schema({ 
    name : String, 
    groups : [GroupsSchema ] 
}); 

Спасибо!

ответ

0

Это монгольские способы поддержки параметров embed или reference при моделировании ваших данных.

В первом случае используется ссылки, где поле groups массива каждого Person документа содержит ObjectId значения, которые идентифицируют _id из смежных Group документов в отдельной коллекции. Это эффективно хранит набор внешних ключей в groups.

Во втором случае массив groups непосредственно содержит (т. Е. Вставляет) связанные групповые документы. В этом случае не будет отдельной коллекции для групп, и это зависит от вашего приложения, чтобы обеспечить постоянное обновление любых дублированных групповых данных в массивах.

Смежные вопросы