Вопрос по mongoose, mongodb – DbRef с мангустом - мангуст-дбреф или заселить?

3

У меня есть следующие 2 схемы:

Событие компании:

<code>var companyEventSchema = new Schema({
    name : String,
    description
    date : Date,
    attendees : [ { type : Schema.ObjectId, ref : 'Member' } ],
]});
</code>

И член

<code>var memberSchema = new Schema({
    name : String,
    emailAddress: String,
    password :String,
    created: { type: Date, default: Date.now }
});
</code>

Является ли способ, которым я «проверяю» участника из companyEventSchema, верен? Я пытаюсь сделать что-то длинное по линии dbref.

Я видел отдельный проект для этого, хотя ...Мангуст-dbref

Тем не менее, документы Mongoose говорят, что вышеприведенное обеспечивает «функциональность, подобную dbref».

Что будет более эффективным?

Все выглядит хорошо, но помните, чтоref : 'Member' будет работать только в том случае, если позже вы загрузите эту схему в модель mongoose со следующим:member = mongoose.model('Member', memberSchema), Я использовал populate, так как обнаружил, что mongoose-dbref дает мне тот же результат! drinchev

Ваш Ответ

1   ответ
10

DBRef (а такжеmongoose-dbref) для случая, когда поле может содержать ObjectIds, которые ссылаются на документы в потенциально более чем одной коллекции.DBRef это кортежObjectId, имя коллекции и необязательное имя базы данных.

Мангустаref: поля, однако, содержат толькоObjectId и это схема Мангуста, которая определяет, чтоone Коллекция ссылки ObjectIds.

Так мангустref: поля более эффективны и должны всегда использоваться, если вам не нужна поддержка ссылок для нескольких коллекций, котораяDBRef обеспечивает.

Похожие вопросы