避免将push / addToSet null值移至mongodb数组

时间:2015-11-25 01:28:51

标签: mongodb mongoose

在mongoose中使用 $ push $ addToSet 运算符时,我给出的值( friend.id )为 null 未定义,它会将 null 元素推送到数组。

dbUser.findByIdAndUpdate(
 _id,
 {
  $addToSet: {
  'friendsBlackList': friendB.id ,
  'FriendsWhiteList': friendW.id ,
  },
  },
  { new: true, upsert: true }
});

如何避免推送null元素?它可以在mongoose模式中控制吗?谢谢你的建议。

1 个答案:

答案 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是否也有这样的选项。