我的数据库(MongoDB)中保存了以下类型的数据
{
"_id" : ObjectId("5935359293ed1f37e52785fe"),
"_class" : "com.example.bean.UserActivity",
"appId" : NumberLong(1234),
"uId" : "9999",
"itemId" : "10024",
"timestamp" : "2017-06-05T10:42:26.896Z",
"status" : 0
}
USECASE
我想在status =
0
我尝试使用此查询解决我的用例
db.userActivity.findAndModify(
{
query: { 'appId' : 1234, 'status' : 0},
update: { $inc: { 'status': 1 } }
});
它工作但它只修改了一个文档。
我的用例是查找所有文档并更新其状态?
注意:使用以下查询我可以更新多个文档,但我想阅读以及使用单个查询更新多个文档。
MongoDB可以吗?
db.userActivity.update({ 'appId' : 1234, 'status' : 0}, {$set: { 'status': 1 }}, {multi: true})
或者是否有任何替代方式来实现它。
修改1 :完整用例
我想阅读数据库中包含特定appId
和status
= 0的所有文档,并在阅读后设置status
= 1
在此之后,我想将它们写在文件中,以便我可以将其上传到文件服务器。
我有一个工作人员(一个单独的线程),他们定期让我们说(每24小时后)从MongoDB读取所有文件并创建一个文件。
为什么我保持状态是为了避免我的工作人员重复阅读。