mongodb如何投射第一个孩子

时间:2016-06-02 09:08:27

标签: mongodb aggregation-framework

我有一个带结构的mongo db集合

randomstring - 表示字符串实际上是随机的,它在集合的每个文档中都是不同的。

{
   "notrandom":{
     "randomstring":{
       "randomstring":{
          "randomstring":{
              "notrandom2":"data"
           }
        }
     }
  }
}

我该如何投射这些数据?

之类的东西
db.mydb.aggregate( "notrandom[0][0].notrandom2":1}} , ]  )

我想要实现的是所有notrandom2值的集合。

2 个答案:

答案 0 :(得分:0)

如果您要将notrandom2移到文档结构中的较高级别, 你可以像这样使用$project阶段:

{
   $project:{
      _id:1,
      notrandom2:"notrandom.randomstring.randomstring.randomstring.notrandom2",
      // list all others fields with field:1 if you want them to appear down in pieline 
}}

如果此字段是数组的一部分,则需要先$unwind,然后$project

答案 1 :(得分:0)

您可以使用以下查询

db.mydb.find({<findquery (in you have any)>},{"notrandom.randomstring.randomstring.randomstring.notrandom2" : 1}).
toArray(function(err, result)
{
     console.log(result); //Array of objects with `notrandom2` values
})