0

我已将此文档插入到db.references集合中:

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

所以,我想知道哪些文档有metadades.changed通知,metadades嵌套文档数组在哪里。

有任何想法吗?

4

1 回答 1

1

对于完整文档(具有嵌套文档的父级):

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

这基本上会生成所有文档,其中至少有一个嵌套文档,其中包含已更改的字段。

如果您只想要匹配的嵌套文档:

db.references.aggregate([
{
    $unwind: {
        path: "$metadades"
    }
},
{
    $match: {
        "metadades.changed": {$exists: 1}
    }
},
{
    $replaceRoot: {
        "newRoot": "$metadades"
    }
}
])
于 2018-09-20T11:02:48.053 回答