MongoDb: запрос к массиву вложенных документов - PullRequest
0 голосов
/ 20 сентября 2018

Я вставил этот документ в db.references коллекции:

{
   "idRef":"asdf-ggtt-001",
   "metadades":[
      {
         "departament":"JUST",
         "changed": ISODate("2016-02-10T10:50:42.389Z")
      },
      {
         "ambit":"AMB1"
      }
   ]
}

Итак, я хотел бы узнать, какие документы имеют metadades.changed информацию, где metadades - это массив вложенныхдокументы.

Есть идеи?

1 Ответ

0 голосов
/ 20 сентября 2018

Для полного документа (родитель с вложенными документами):

db.references.find({"metadades.changed": {$exists: 1}}).pretty()

В основном будут созданы все документы с хотя бы одним вложенным документом с измененным полем.

Если вы толькохотите вложенный документ, который соответствует:

db.references.aggregate([
{
    $unwind: {
        path: "$metadades"
    }
},
{
    $match: {
        "metadades.changed": {$exists: 1}
    }
},
{
    $replaceRoot: {
        "newRoot": "$metadades"
    }
}
])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...