Поиск ссылочного документа во всей существующей коллекции с использованием Mongoose

У меня есть 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 комментария или сообщения.

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

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

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

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

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


person Xavier Le Tohic    schedule 09.03.2015    source источник


Ответы (1)


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

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

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

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

person ncabral    schedule 09.03.2015