2017-10-13 54 views
1

我有以下文件:如何获得蒙戈子文档记录外壳

"Demo" : { 
      "SI" : { 
       "Value1" : 40, 
       "Value2" : [ 
        10, 
        15, 
        20 

       ] 
      } , 
      "RS" : { 
       "Value1" : 4, 
       "Value2" : [ 
        1, 
        2, 
        3, 
        4 
       ] 
       } 
    } 

我要为子文档“SI”获取数据。我尝试过以下查询: db.getCollection('input').find({"Demo.SI":"SI"}),但它没有给出'SI'文档的任何记录。期望的输出是:

"SI" : { 
      "Value1" : 40, 
      "Value2" : [ 
       10, 
       15, 
       20 

      ] 
     } 

请指定查询出错的位置。

回答

1

首先检查SI存在或不使用$exists然后将其添加在projection如下的文件:

db.input.find({"Demo.SI":{"$exists":true}},{"Demo.SI":1,"_id":0}).pretty() 
0
db.collection.find({ "Demo.SI": { $exists: true, $ne: null } },{"Demo.SI":1,"_id":0}) 

这个查询将返回所有具有SI关键