如何在mongo shell中获取子文档记录

时间:2017-10-13 10:08:46

标签: java mongodb

我在以下文件中有以下文件:

 "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

            ]
        }

请指明查询出错的位置。

2 个答案:

答案 0 :(得分:1)

使用SI首先检查$exists是否存在,然后将其添加到projection中,如下所示:

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

答案 1 :(得分:0)

where

此查询将返回所有具有SI键的文档