在mongoose中使用 $ push 或 $ addToSet 运算符时,我给出的值( friend.id )为 null 或未定义,它会将 null 元素推送到数组。
dbUser.findByIdAndUpdate(
_id,
{
$addToSet: {
'friendsBlackList': friendB.id ,
'FriendsWhiteList': friendW.id ,
},
},
{ new: true, upsert: true }
});
如何避免推送null元素?它可以在mongoose模式中控制吗?谢谢你的建议。
答案 0 :(得分:0)
我不熟悉Mongoose及其语法,但您可以使用以下伪代码进行描述:
var update = { $addToSet:{}};
if(friendB.id !=null){
update.$addToSet.friendsBlackList = friendB.id
}
if(friendW.id !=null){
update.$addToSet.friendsWhiteList = friendW.id
}
dbUser.findByIdAndUpdate(_id,update,{ new: true, upsert: true });
某些驱动程序(即Morphia)具有可以设置为忽略null和空值的选项。您应该检查Mongoose是否也有这样的选项。