5

我将 mongo-jackson-wrapper 与 java 和 MongoDB 一起使用。我通过查询我的一个字段(不是 _id 字段)找到一个对象,然后我需要知道 _id 字段值,最终结果是更新还是插入。但是,我得到一个例外:

com.mongodb.MongoException: No objects to return
    at net.vz.mongodb.jackson.WriteResult.getSavedId(WriteResult.java:97)

异常来自包装器,而不是 MongoDB 驱动程序本身。

WriteResult<EntityDocument, String> wr 
   = coll.update(DBQuery.is("corefEntityId", corefEntityId), up, true,  false);

什么(如果有的话)是正确的方法?

4

1 回答 1

0

您需要使用findAndModify并将returnNew设置为true

您可以查看JavaDoc

这段代码应该可以解决问题,但我还没有测试过。

coll.findAndModify(DBQuery.is("corefEntityId", corefEntityId), null, null, false, up, true, false);

于 2014-01-07T15:43:23.130 回答