我有什么:两个收藏夹
我想要的内容:我想根据某些条件更新“用户”集合中的用户积分。同时,我想为每个用户在“ UserPoints”集合中插入一个文档,并输入新更新的点和日志。
我尝试过的事情:我编写了一个updateMany查询,该查询已在某些用户上尝试过,但工作正常。它正在更新“用户”集合中的用户点。但是问题是,我想要被更新的userId,以便可以在“ UserPoints”集合中进行输入。
在MongoDB中有没有办法做到这一点? (我正在使用3.2版)
我当时正在考虑为此编写一个简单的C#程序。
有什么建议吗?
答案 0 :(得分:0)
我在下面的查询中使用了
db.users.find({
"createdDate" : {"$gte": new Date("2017-12-01T00:00:00.000Z"),
"$lte": new Date("2018-02-28T00:00:00.000Z")}
}).forEach(function(doc){
if (doc.points > 0){
db.userPoints.insertOne({
userId: doc._id,
userCode: doc.userCode,
points: NumberInt(doc.points),
type: NumberInt(doc.userType),
});
db.users.updateOne({ _id: doc._id }, { $set: {
points: 0,
updatedDate: new ISODate("2018-08-02T00:00:00.000Z")
}}, false);
}
});