2015-03-09 3 views
0

У меня есть 3 коллекции:Обнаружение ссылочного документа во всех существующей коллекции с помощью Мангуст

события:

{ 
    _id: ObjectId(54ca0f2506d0c6b673b2fde8), 
    _reference: ObjectId("54fd786c549e96f70f9c027d") 
}, 
{ 
    _id: ObjectId(54acd81941a646d768922cfa), 
    _reference: ObjectId("54fd786c549e96f70f9c027d") 
} 

Сообщений:

{ 
    _id: ObjectId(54fd786c549e96f70f9c027d), 
    title: "This is a post", 
    content: "This is the content of the post" 
} 

Комментарии:

{ 
    _id: ObjectId(54fd786c549e96f70f9c027e), 
    content: "This is a comment on a post" 
} 

Когда сообщение или создается комментарий, документ также создается в коллекции «события» с свойством «_reference». Эта «_reference» будет содержать ObjectId комментария или сообщения.

Затем мне нужно восстановить все документы (сохраненные в других коллекциях, i.e сообщения и комментарии), которые указаны в каждом документе в коллекции «события».

Я использовал метод заполнения, но это позволяет мне проверять только одну коллекцию, когда мне нужно проверить ВСЕ существующие коллекции.

пыльник является примером того, как я определил эталонную свойство в модели мангустов:

_reference: {type: Schema.Types.ObjectId, ref: 'posts'} 

Заранее спасибо!

ответ

1

Вы не можете определить схему событий, как:

_reference: {type: Schema.Types.ObjectId, ref: 'posts'} 

и ожидаем, что ссылаться на комментарии, а также. Потому что вы прямо заявляете, что ссылка на сообщения.

Лучше было бы сохранить ObjectID в events для объекта, который вы хотите сохранить, добавить поле под названием type, где бы вы сказали, если это комментарий или пост, и в соответствии с этим, посмотрите обозначенную коллекцию для ObjectId.

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

  • Нет связанных вопросов^_^