任何人都可以告訴我這是否是合法的貓鼬。我正在嘗試更新學生主文檔數組中的子文檔。當我從shell運行更新查詢時,它可以正常工作,但是從下面的代碼中它不會更新數據。更新查找結果函數裏面的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
}
}
})
});
嗨argoden,我的問題是,我是否可以在findOne({「phone._id」:mongoose.Types.ObjectId('587e6409e06170ba1708dc21')},{_ id:0,phone:1},函數(err ,電話){/ /更新邏輯}),我也試着解決findOne的承諾,也沒有幫助。 –
我不認爲你可以。你可以使用findOne在更新查詢中返回的內容,但我認爲你不能在裏面使用它。 – argoden