【问题标题】:How to fetch the record from mongodb using _id field and display the fetched record in the console using java如何使用 _id 字段从 mongodb 获取记录并使用 java 在控制台中显示获取的记录
【发布时间】:2016-02-25 18:26:58
【问题描述】:

我正在尝试使用“_id”字段从 mongodb 检索记录。但我得到 null 作为输出。

我的代码:

MongoClient mongo = new MongoClient("localhost",27017);
        DB db = mongo.getDB("sample");
        DBCollection col = db.getCollection("matching");

BasicDBObject query = new BasicDBObject();
            query.put("_id", new ObjectId("56cec592fe3fc16f6b564761"));
            DBObject dbObj = col.findOne(query);
            System.out.println(dbObj); //getting output as null

我在 mongodb 中的记录:

{
        "_id" : ObjectId("56cec592fe3fc16f6b564761"),
        "name" : "vishal",
        "location" : "Delhi",
        "Profession" : "SE",
        "number" : 2
}

【问题讨论】:

  • 只检查数据库名称和集合名称是否正确。即使大小写也很重要。

标签: java mongodb


【解决方案1】:

您可以导入org.bson.types.ObjectId,您可以用它包装id,并在您的查询中使用它作为

import org.bson.types.ObjectId;
...

MongoClient mongo = new MongoClient("localhost",27017);
DB db = mongo.getDB("sample");
DBCollection col = db.getCollection("matching");
BasicDBObject query = new BasicDBObject();
query.put("_id", new ObjectId("56cec592fe3fc16f6b564761"));
DBObject dbObj = col.findOne(query);

【讨论】:

  • 如何打印 dbObj。我正在使用 sysout 打印 dbObj,但输出为 null。我使用了相同的代码,但仍然面临这个问题...
  • 你的问题暗示了一些不同的东西:这里你想print,但你的问题暗示fetch,这是哪个?
  • 是的,我正在尝试获取 dbObj 中的记录并尝试在控制台中显示获取的对象
  • 那么请相应地更新您的问题,您已经忽略了如何打印结果部分。
  • 我可以使用 sysout 检索 dbObj。非常感谢您的帮助
【解决方案2】:

试试这个

            DBObject dbObj = col.findOne(new ObjectId("56cec592fe3fc16f6b564761"));

【讨论】:

  • 我的输出仍然为空
  • 请提供的不仅仅是代码。这种变化应该如何解决这个问题?
猜你喜欢
  • 1970-01-01
  • 2019-06-04
  • 2019-09-18
  • 1970-01-01
  • 2020-11-25
  • 2012-01-29
  • 2019-09-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多