我是Mongoose的新手,我无法找到实现特定更新查询的方法。 我有下一个模式:
{
usersJoined: [{
type: String
}],
status: {
type: Number,
default: 0
},
}
当usersJoined数组的大小为5时,我想将状态更新为1。 我正在使用以下查询来查询正确的文档:
Model.findOneAndUpdate(
{
status: 0,
usersJoined: {$ne: user}
},
{
$push: {usersJoined: user}
}
);
答案 0 :(得分:0)
我要在用户人数增加时将状态更新为1 数组是5
使用数组$size运算符过滤记录,findOneAndUpdate方法将更新第一个匹配的记录。请参阅文档findOneAndUpdate。如果这不适合您的用例,请检查其他update methods
db.collection.findOneAndUpdate(
{"userJoined": {"$size": 5}},
{$set: {"status": 1}},
{returnNewDocument: true} //if true, returns the updated document.
);