我有一个mongodb数据库,我想从java mongodb API中检索数据。我的数据库类似于以下json:
{
"_id": 123456,
"value": {
"count": 123,
"persons": 456
}
}
我想对特定的id执行查询以获取计数和人员。我的代码是:
BasicDBObject query = new BasicDBObject("_id", no);
DBCursor cursor = coll_in.find(query);
System.out.println(cursor);
我在find(查询)中找到了数据库中的对象,我想要检索计数值和人员。
答案 0 :(得分:2)
使用coll_in.find(query)
从DB获取的内容可以是一组文档,或者您需要使用*.findOne()
或您的变体使用这样的内容:
try (DBCursor cursor = coll_in.find(query)) {
while (cursor.hasNext()) {
final DBObject result = cursor.next();
Map<String, Object> value = (Map<String, Object>) result.get("value");
System.out.println(value.get("count"));
System.out.println(value.get("persons"));
}
} catch (final MongoException ex) {
// error
}
但是,如果您确定自己拥有唯一的_id,请尽量减少代码使用findOne()
。
答案 1 :(得分:1)
findOne()方法的示例
BasicDBObject query = new BasicDBObject("_id", no);
DBObject object = coll_in.findOne(query);
Map<String, Object> doc = (Map<String, Object>) object;
if(doc != null) {
Map<String, Object> value = (Map<String, Object>) doc.get("value");
System.out.println(value.get("count"));
System.out.println(value.get("persons"));
}