从mongodb检索数据

时间:2014-05-02 08:00:27

标签: java mongodb

我有一个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(查询)中找到了数据库中的对象,我想要检索计数值和人员。

2 个答案:

答案 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"));
}