MongoDB unset 删除子项中的所有内容
MongoDB unset removes everything in child
我有这样的数据库结构:
{ "_id" : ObjectId("5fd48e12e5e0fd174c1a7260"),
"races" : {
"example1" : { "date" : "12/18/2020", "status" : "pending" },
"example2" : { "date" : "12/18/2020", "status" : "domestic" }
}
我正尝试使用以下代码块 (javascript) 删除 example 1
:
self.db = client.db("authinfo");
self.collection = self.db.collection("users");
this.delete_both_races = function (user1) {
self.collection.updateOne({user:user1} ,{$unset:{races:"example1"}} ,function(error,result){});
同样的事情发生在 运行 mongo.exe 命令行程序中的以下命令:
db.users.updateOne({user:"anything"} , {$unset:{races:"example1"}})
我得到的结果是(取消设置后的剩余元素):
{ "_id" : ObjectId("5fd48e12e5e0fd174c1a7260") }
期望的结果:
{ "_id" : ObjectId("5fd48e12e5e0fd174c1a7260"),
"races" : {
"example2" : { "date" : "12/18/2020", "status" : "domestic" }
}
您应该取消设置 races.example1
而不是 races
。
来自 MongoDB document,
The specified value in the $unset expression (i.e. "") does not impact the operation.
To specify a in an embedded document or in an array, use dot notation.
我有这样的数据库结构:
{ "_id" : ObjectId("5fd48e12e5e0fd174c1a7260"),
"races" : {
"example1" : { "date" : "12/18/2020", "status" : "pending" },
"example2" : { "date" : "12/18/2020", "status" : "domestic" }
}
我正尝试使用以下代码块 (javascript) 删除 example 1
:
self.db = client.db("authinfo");
self.collection = self.db.collection("users");
this.delete_both_races = function (user1) {
self.collection.updateOne({user:user1} ,{$unset:{races:"example1"}} ,function(error,result){});
同样的事情发生在 运行 mongo.exe 命令行程序中的以下命令:
db.users.updateOne({user:"anything"} , {$unset:{races:"example1"}})
我得到的结果是(取消设置后的剩余元素):
{ "_id" : ObjectId("5fd48e12e5e0fd174c1a7260") }
期望的结果:
{ "_id" : ObjectId("5fd48e12e5e0fd174c1a7260"),
"races" : {
"example2" : { "date" : "12/18/2020", "status" : "domestic" }
}
您应该取消设置 races.example1
而不是 races
。
来自 MongoDB document,
The specified value in the $unset expression (i.e. "") does not impact the operation.
To specify a in an embedded document or in an array, use dot notation.