0
如果您閱讀我的代碼,您將看到如果請求給出的ID與文檔的Friends
數組中的元素相匹配,則用戶不會更新(由於$not
運營商)。因此,如果找到並未更新用戶,則返回的結果(myDoc,otherDoc)爲空。我想仍然得到這兩份文件是否已更新。我檢查了貓鼬的文檔,但似乎無法找到解決方案。如果用戶沒有更新(由於條件),findOneAndUpdate返回null
promise.all([
User.findOneAndUpdate({id: req.body.myId, Friends: { $not: { $elemMatch: { id: req.body.id }}}}, {$addToSet: { Friends: { id: req.body.id, gender: req.body.gender, emoji: res.locals.myEmoji }}}),
User.findOneAndUpdate({id: req.body.id, Friends: {$not: { $elemMatch: {id: req.body.myId }}}}, {$addToSet: { Friends: { id: req.body.myId, gender: req.body.myGender, emoji: res.locals.friendEmoji }}})])
.spread(function (myDoc, otherDoc){
///gives back null if user is not updated
}).catch(function (err){
return res.status(400).send(err)
});
編輯:有沒有某種貓鼬插件對此有用? ....
你能顯示你的用戶模式嗎? –
是否檢查過您的查詢是否適用於常規查找。如果它在常規查找中返回null而不是更新,那麼您的查詢可能沒有做它應該做的事情。 –
我查了我的朋友。它發現它很好。拉維..這是我的架構VAR userSchema =新模式({ ID:{ 類型:字符串, 獨特:真正的,需要 :真 }, 性別:字符串, 朋友:[屬性] } ); – Ryan