在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
。
我不知道如何从集合中删除用户。
答案 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
>