如何检查对象是否不在 mongoDb 的数组中?

Ser*_*hiy 3 mongodb

我想在成员数组中推送对象,如果它不存在。有没有办法检查对象是否不在mongodb的数组中?

{
 _id: 1111,
 members:[
 {user_id: 11},
 {user_id: 12},
 {user_id: 13}
 ]
}
Run Code Online (Sandbox Code Playgroud)

所以我想检查一下:

newUser = {user_id: 14}
Run Code Online (Sandbox Code Playgroud)

不在成员数组中,如果不是 - 将其推到那里。被它困住了。预先感谢您的帮助。

Ser*_*kiy 5

使用 $nin 运算符检查members数组是否不包含user_id等于 14 的文档。更新很简单 $push:

db.collection.update({'members.user_id':{$nin: [14]}}, {$push:{members:{user_id:14}}})
Run Code Online (Sandbox Code Playgroud)