$ pull不适用于猫鼬(MongoDB)中的数组

时间:2020-10-07 05:31:15

标签: node.js mongodb express mongoose web-development-server

在mongoDB(通过猫鼬)中,我试图删除集合数组中的一个元素,并为此使用$ pull运算符,但是它不起作用。

mongoDB中的房间集合

{
"_id":"sampleObjectId",
"users": ["email1@example.com", "email2@example.com"]
}

删除用户的后端代码(使用Node.js的猫鼬)

Rooms.update(
              { _id: "sampleRoomId" },
              {
                $pull: {
                    users: "email1@exmple.com" }
                },
              }
            )

运行此代码时注意收集,没有任何更改。代码运行无错误,并且在输出中显示"nModified":0。 我不知道如何从集合中删除用户。

1 个答案:

答案 0 :(得分:0)

//actual code output from the mongo shell. This is working as expected. check if you given //correct value in object_id query parameter.

> db.rooms.find();
{ "_id" : "sampleObjectId", "users" : [ "email1@example.com", "email2@example.com" ] }
> db.rooms.update(
... {_id: "sampleObjectId"},
... {$pull:{users:"email1@example.com"}}
... );
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.rooms.find();
{ "_id" : "sampleObjectId", "users" : [ "email2@example.com" ] }
> db.version();
4.2.6
>