【问题标题】:mongodb upsert from java: how to get _id of existing object?来自java的mongodb upsert:如何获取现有对象的_id?
【发布时间】:2012-06-09 15:58:44
【问题描述】:

我将 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);

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

【问题讨论】:

    标签: java mongodb mongo-java


    【解决方案1】:

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

    您可以查看JavaDoc

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

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

    【讨论】:

      猜你喜欢
      • 2011-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-09
      • 1970-01-01
      • 2023-01-16
      • 2012-10-24
      • 1970-01-01
      相关资源
      最近更新 更多