Может ли кто-нибудь сказать мне, является ли это законным в мангусте. Я пытаюсь обновить sub doc в массиве основного документа для студентов. Когда я запускаю запрос на обновление из оболочки, он работает нормально, но из приведенного ниже кода он не обновляет данные.Обновить документ mongo внутри функции результата поиска
Student.findOne({
"phone._id": mongoose.Types.ObjectId('587e6409e06170ba1708dc21')
},
{
_id: 0,
phone: 1
},
function(err,
phone){
if(err){
console.log(err)
}if(phone.Home==phone.Cell||phone.secondary===undefined){
Student.update({
'Student._id': mongoose.Types.ObjectId('587e6409e06170ba1708dc22'),
'phone._id': mongoose.Types.ObjectId('587e6409e06170ba1708dc21')
},
{
"$set": {
'phone.$.number': 453454554
}
}
})
});
Привет, aroden, мой вопрос в том, могу ли я написать обновление внутри findOne ({«phone._id»: mongoose.Types.ObjectId ('587e6409e06170ba1708dc21')}, {_ id: 0, phone: 1}, function (err , телефон) {// обновить логику}), я также попытался решить обещание findOne, которое тоже не помогло. –
Я не думаю, что вы можете. вы можете использовать то, что findOne возвращает в запросе обновления, но я не думаю, что вы можете использовать его внутри. – argoden