java - 如何从mongo中的子文档中获取特定值

标签 java mongodb rest

我想从 mongo 子文档中查找特定字段值,但它检索的是完整数据或空值。我正在使用 mongo 3.0.1 驱动程序。 mongo 特定驱动程序的语法是否有任何问题。
Json数据为:

    {
        "Demo": {
            "Demo Data": {
                "Building": {
                    "A": 1,
                    "B": 2,
                    "C": 3,
                    "D": 4,

                },
                "Mode": "Building"
            }
        }
    }

代码如下:

 DBCollection collection = db.getCollection("demo");
                    BasicDBObject field = new BasicDBObject();
                    BasicDBObject document = new BasicDBObject();
                    field1.put("_id", 0);
                    field1.put("Demo", 1);
                    DBCursor cursor = collection.find(document, field);
                    BasicDBObject object = new BasicDBObject();
                    BasicDBObject Mode = new BasicDBObject();
                    while (cursor.hasNext()) {
                        object = (BasicDBObject) cursor.next();
                        Mode.put("Mode", object.get(Mode));
                        System.out.println("Mode value is"+Mode);

                    }

但是使用上面的代码,输出显示为:

Mode value is {"Mode":null}

要求得到以下输出: {“模式”:“建筑”}

请具体说明哪里出了问题。感谢您的帮助。

最佳答案

我认为您错误地假设,既然您输入了 field1.put("Demo", 1); ,它就会返回您的内部文档,而无论如何它总是会返回您完整的文档,它会忽略其他字段,但即使如此,它也将是从根开始的完整文档。

while (cursor.hasNext()) {
  object = (BasicDBObject) cursor.next();
  Map map = object.toMap();
  Mode.put("Mode", map.get("Demo").get("Demo Data").get("Mode")); //pre-check for NPE
  System.out.println("Mode value is"+Mode);
}

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

相关文章:

java - 读取 .xml 文件进行解析时出现 FileNotFoundException

python - 在 MongoDB 中重用 Cursor 对象

node.js - Passportjs 用户对象不返回密码以进行比较密码

javascript - Backbonejs 与 Mongolab

java - 带 spring 的抽象类变量

java - 使用 OAuth2 保护 REST Web 服务 : General principles

spring - jersey-spring3 实例化 Spring 管理的 bean (null!)

json - 如何在遵循 REST 的同时在 HAL(JSON 版本)中表示集合

mysql - 如何将rest api和yii2中两个数据库表的关系数据显示为json格式

java - 如何制定图像压缩算法?