Поиск подполей в mongoDB - PullRequest
       3

Поиск подполей в mongoDB

0 голосов
/ 23 февраля 2012

Как бы я выбрал автора под-документа в показанном ниже объекте, не обращаясь к нему напрямую, то есть authors[0], чтобы в результате я получил {"_id":"4f44af6a024342300e000002", visible: true}?

Объект:

{
    _id:     "4f44af6a024342300e000001",
    title:   "A book", 
    created: "2012-02-22T14:12:51.305Z"
    authors: [{"_id":"4f44af6a024342300e000002", visible: true}] 
}

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

books.update({_id: "4f44af6a024342300e000001",'authors._id': "4f44af6a024342300e000002"}, 
             {$set: {'books.$.visible': true}}, function(err) {
    // ...
});

1 Ответ

1 голос
/ 23 февраля 2012

В настоящее время это невозможно (см. Аналогичный вопрос с дополнительными подробностями).

В MongoDB как получить значение в поле для внедренного документа, но запросить на основе другого значения

В следующей версии инфраструктура агрегации может дать некоторый шаг в этом направлении, но реальным решением является виртуальная коллекция.

В настоящее время (вкратце) используйтевнедренный документ, только если вы проходите через родитель.

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