我有这样的文件。
"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");
答案 0 :(得分:0)
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");
}
}