繁体   English   中英

如何在Java Driver for MongoDb中查询这样的文档?

[英]How do I query document like this in Java Driver for MongoDb?

我有一个这样的文件。

"item" : "060478132",
    "some_id" : {
        "5" : {
            "obj1" : "4",
            "obj2" : "4"
        }
    }

这是我现在正在做的事情,我认为它可能会更好,但我是mongo的Java驱动程序的新手

DBObject query = start("item").is("060478132").get();
DBObject obj = collection.find(query).toArray().get(0);
DBObject some_ids = (DBObject) obj.get("some_id");
DBObject theObj = (DBObject) some_ids.get("5");

MongoDB允许基于字段进行投影,因此您可以减少结果文档中的字段数。 但是您不能直接查询子文档。 我在您的代码中还看到了查询对象的构造方式。 改用一个简单的new BasicDBObject(...)

具有null检查的完整示例:

DBObject query = new BasicDBObject("item", "060478132");
DBObject document = collection.findOne(query, new BasicDBObject("some_id", 1);
if (document != null) {
    DBObject someId = document.get("some_id");
    if (someId != null) {
        DBObject result = someId.get("5");
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM