MongoDB:有没有办法找到文件和在同一个操作中设置一个值?

时间:2013-02-17 18:35:24

标签: java mongodb mongodb-java

我有一个名为“messages”的集合。每条消息都有一个'read'布尔值。在某些情况下,当我检索消息时,我想将值设置为“true”,同时返回预修改的值。

所以,假设我有一条消息,其“读取”值为“false”。当我检索它时,我想返回初始的'false'值,但是在同样的操作中我想将它设置为'true'。

任何方式这样做?

1 个答案:

答案 0 :(得分:3)

您正在寻找findAndModify command

  

4。该命令返回为此更新选择的原始未修改文档。

如果您在Mongo shell中使用它,您的用法将如下所示:

db.messages.findAndModify({query: {read: false}, update: {read: true}})

看起来你正在使用Java。 Java驱动程序为findAndModify()提供了一些不同的签名。您可以在javadoc for DBCollection

中查看它们