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

标签 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

            ]
        }

请指出查询出错的位置。

最佳答案

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

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

关于java - mongo shell中如何获取子文档记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46727452/

相关文章:

java - 并发 - 中断 Future 而不取消它

php - 拉拉维尔 5.5 : MongoDB & hasManyThrough() relation

mongodb - 在没有YUM的centos上安装MongoDB

node.js - 如何为以下条件编写mongo聚合函数

arrays - MongoDB 更新(将项目列表插入数组)

java - Hibernate 错误地实现了多对多关系?

java - 在java中,我如何检查用于输入成绩的数组的输入验证(不能为负数,不能超过100)

java - 执行器框架异常行为

java - Java中这两个语句有什么区别?

mongodb - 计算 MongoDB 中使用的数据库大小百分比