我无法从 MongoDB 中的查询文档中检索值。
例如,文档结构如下:
{
"_id": {
"$oid": "50f93b74f9eccc540b302462"
},
"response": {
"result": {
"code": "1000",
"msg": "Command completed successfully"
},
"resData": {
"domain:infData": {
"domain:name": "ritesh.com",
"domain:crDate": "2007-06-15T12:02:36.0000Z",
"domain:exDate": "2013-06-15T12:02:36.0000Z"
}
}
}
}
查询代码是:
DBCollection collection = db.getCollection("domains");
BasicDBObject p = new BasicDBObject("response.resData.domain:infData.domain:name", "ritesh.com");
DBCursor c = collection.find(p);
while(c.hasNext()) {
DBObject obj = c.next();
Object value = obj.get("response.resData.domain:infData.domain:name");
}
它可以很好地查询并获取文档,但我似乎无法弄清楚如何从 DBObject(或自 c. next() 返回类型 BasicDBObject)。
我可以一次获取一个对象,例如:
((DBObject)obj.get("response")).get("resData")....
但这似乎很麻烦。
我想既然你可以在 BasicDBObject 中放置()一个嵌套字段值,例如:
basicDBObject.put("response.resData.domain:infData.domain:name", "ritesh.com");
我可以类似地使用 get() 使用相同类型的键从 BasicDBObject 结果中获取。就像我试图在上面的代码中做的那样:
Object value = obj.get("response.resData.domain:infData.domain:name");
但那是返回一个空值。
这可能很简单,但我似乎无法弄清楚。而且我在网上检查过的所有示例都只从结果中获取未嵌套的值。喜欢
doc.get("name");
而不是类似的东西:
doc.get("name.lastname.clanname");
任何帮助,将不胜感激。谢谢!