我想从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}
要求是获得以下输出:
{"Mode": "Building"}
。
请说明情况出错的地方。谢谢你的帮助。
答案 0 :(得分:0)
我认为你错误地认为,因为你已经放了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);
}