Я бы рекомендовал сбросить DBRef
s в пользу простого хранения _id
документа, на который есть ссылка, при условии, что вы знаете имя коллекции, на которую ссылается.
Нет абсолютно никакого способа "разрешить "массив DBRef
со стороны сервера (за один шаг) на MongoDB и требует, чтобы вы перебирали массив на клиенте и индивидуально разрешали каждый документ.
И наоборот, если вы хранитемассив только из упомянутых _id
, вы можете извлечь этот массив и затем использовать запрос $in
, чтобы извлечь их все.
Таким образом, ваш документ может измениться так, чтобы он выглядел так:
{
"_id" : ObjectId("4e2d4892580fd602eb000003"),
"date_added" : ISODate("2011-07-25T11:42:26.395Z"),
"date_updated" : ISODate("2011-07-25T11:43:09.870Z"),
...
"references": [
ObjectId(123), ObjectId(234), ObjectId(567), ObjectId(891)
],
...
"name" : "some name"
}
Затем вы можете запросить MongoDB, используя содержимое поля references
:
db.somecollection.find({"_id": {"$in": references}})