如何获取一个文档MongoDB Java的_id
我正在使用如何获取一个文档MongoDB Java的_id,java,mongodb,Java,Mongodb,我正在使用MongoDB和Java驱动程序 我需要在MongoDB中插入一个文档并检索此文档的_id。insert方法返回一个[WriteResult][1] 我不知道如何使用WriteResult对象检索_id,因为我尝试这样做: public void insertDocument(BasicDBObject fact){ DBCollection coll = this.getCollection("facts"); WriteResult result = coll.in
MongoDB
和Java驱动程序
我需要在MongoDB中插入一个文档并检索此文档的_id。insert
方法返回一个[WriteResult][1]
我不知道如何使用WriteResult对象检索_id,因为我尝试这样做:
public void insertDocument(BasicDBObject fact){
DBCollection coll = this.getCollection("facts");
WriteResult result = coll.insert(fact);
String id = (String) result.getField("_id");
System.out.println("--------------------------->"+id);
}
我在println
中有一个空字符串
我的问题是如何获得刚刚插入数据库的整个对象(带有_id)
谢谢 插入BasicDBObject
实例后,MongoDB驱动程序会修改实例,将值设置为\u id
字段(如果您没有指定)
因此,您仍然可以使用事实
对象并从中获取\u id
:
System.out.println(fact.get("_id"));
插入BasicDBObject
实例后,MongoDB驱动程序会修改实例,将值设置为\u id
字段(如果您没有指定)
因此,您仍然可以使用事实
对象并从中获取\u id
:
System.out.println(fact.get("_id"));
WriteResult
是状态对象,不是插入集合的项的副本,请注意result.getField
已弃用。WriteResult
是状态对象,不是插入集合的项的副本,请注意result.getField
已弃用。然后,我的方法能否返回BasicDBObjec以使我的旧对象具有正确的_id?是的,您可以返回事实
。当然,您必须将方法签名更改为public DBObject insertDocument(BasicDBObject事实)
我的最后一个问题。我能把一个基本对象映射到一个“事实”对象吗?嗯……事实对象是什么?也许你可以,但是你最好创建另一个线程并在那里提问。让更多的人知道:)对不起,这是我代码的一个对象。我想做一些事情,比如通过一个JSON字符串将一个BasicDBObject解析到我的Fact object然后,我的方法是否可以返回BasicDBObject以使我的旧对象具有正确的_id?是的,您可以返回事实
。当然,您必须将方法签名更改为public DBObject insertDocument(BasicDBObject事实)
我的最后一个问题。我能把一个基本对象映射到一个“事实”对象吗?嗯……事实对象是什么?也许你可以,但是你最好创建另一个线程并在那里提问。让更多的人知道:)对不起,这是我代码的一个对象。我想做一些事情,比如通过JSON字符串解析BasicDBObject到我的事实对象