我有以下架构:
var mySchema = new Schema({
"name": String,
"users": [
{
"user_id": ObjectId,
"counter": Number
}]
});
文件示例:
{
"name": "Test",
"users": [
{
"user_id": "aaaaaa",
"counter": 2
},
{
"user_id": "bbbbbb",
"counter": 3
}]
}
我如何findOneAndUpdate
具体user_id
并增加counter
?
例如:如何在单个操作中找到Test
并更新counter
的{{1}}?
答案 0 :(得分:2)
mongoose.model('MySchema', mySchema); //is this line superflous??
var MySchema = mongoose.model('MySchema');
MySchema.update({"name": "Test", "users.user_id" : "aaaaaa" } ,
{$inc : {"users.$.counter" : 1} },
function() {...});
因此,对于第一个对象,您将找到要更新的对象。第二个参数是您要更新的内容,其中$用于仅更改查询中当前选定的对象。最后一个参数是回调。