$pull 不适用于 mongoose 中的数组 (MongoDB)
$pull is not working for array in mongoose (MongoDB)
在 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
。
我不知道如何从集合中删除用户。
//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
>
在 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
。
我不知道如何从集合中删除用户。
//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
>