MongoDB unset 删除子项中的所有内容
Posted
技术标签:
【中文标题】MongoDB unset 删除子项中的所有内容【英文标题】:MongoDB unset removes everything in child 【发布时间】:2021-03-28 21:13:59 【问题描述】:我有一个这样的数据库结构:
"_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"
【问题讨论】:
【参考方案1】:您应该取消设置 races.example1
而不是 races
。
来自MongoDB document,
$unset 表达式中的指定值(即“”)不会影响操作。
要在嵌入文档或数组中指定 a,请使用点表示法。
Mongo Playground
【讨论】:
简洁易懂!!谢谢(点赞)以上是关于MongoDB unset 删除子项中的所有内容的主要内容,如果未能解决你的问题,请参考以下文章
《MongoDB入门教程》第18篇 文档更新之$unset操作符