#node.js #mongodb #mongoose
#node.js #mongodb #mongoose
Вопрос:
В этом документе мне нужно обновить готовое поле только для одного элемента массива
но я не знаю, как задать запрос, я получаю сообщение об ошибке, это мой неполный код
updateUserState = function(req,res){
var query = {_id: req.body.game_id};
var update = {$set: { users: { ready: true }}};
var options = {'new': true, 'safe': true, 'upsert': true};
Game.findOneAndUpdate(query,update,options, function(err,data){
if(err)res.send(err)
else res.send(data)
})
}
Я хочу выбрать по _id, который он сделал, и добавить в select by users.user
, но я не знаю, как
Комментарии:
1. Решение сработало для вас?
Ответ №1:
Концепции
field.$[].subField
для обновления каждого подполя,field.$[element].subField
наложить условие на элемент.
Код
updateUserState = function(req,res){
var query = {_id: req.body.game_id};
var update = {$set: { users.$[thisone].ready: true }}};
var options = {'new': true, 'safe': true, 'upsert': true,
arrayFilters:[{ "thisone._id":<idhere> }] }
};
Game.findOneAndUpdate(query,update,options, function(err,data){
if(err)res.send(err)
else res.send(data)
})
}