Java 如何在更新时使用$setOnInsert并在MongoDB中返回文档?

Java 如何在更新时使用$setOnInsert并在MongoDB中返回文档?,java,mongodb,mongodb-java,Java,Mongodb,Mongodb Java,我正在使用Java MongoDB驱动程序。版本是3.0.3 我试图在更新时使用$setOnInsert,但我想返回插入或更新的文档 我有一个userId,createdDate和modifiedDate字段。当文档不存在时,我会创建一个,但当它存在时,我只会更新modifiedDate字段。我知道db.collection.update()不会返回文档,但这是我唯一可以插入的方法。下面是我用于更新的查询: db.collection.update( { userId: <user

我正在使用Java MongoDB驱动程序。版本是3.0.3

我试图在更新时使用$setOnInsert,但我想返回插入或更新的文档

我有一个
userId
createdDate
modifiedDate
字段。当文档不存在时,我会创建一个,但当它存在时,我只会更新modifiedDate字段。我知道
db.collection.update()
不会返回文档,但这是我唯一可以插入的方法。下面是我用于更新的查询:

db.collection.update(
    { userId: <userId> },
    {
      $set: { modifiedDate: <date> },
      $setOnInsert: { createdDate: <date> }
    },
    { upsert: true }
)
db.collection.update(
{userId:},
{
$set:{modifiedDate:},
$setOnInsert:{createdDate:}
},
{upsert:true}
)
我知道MongoDB有一个
find和modify
,您可以使用它来更新和返回更新的文档

是否有任何方法可以使用
查找和修改
$setOnInsert
或使用
更新
返回“上传”文档


提前感谢。

当然,
$setOnInsert
可以使用
findanddomify
很好。谢谢@JohnnyHK,
findanddomify
很好,并返回“upserted”文档。当然,
$setOnInsert
可以使用
findanddomify
很好。谢谢@JohnnyHK,
find和modify
工作正常,返回“upserted”文档。