大佬教程收集整理的这篇文章主要介绍了如何从 MongoDB 文档中删除具有指定值的字段?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是 mongo DB 中的给定文档,如下所示
{
"emailID": "xxx.gmail","user_devices": [],"devices": [{
"created_time": 1607153351,"token": 123
},{
"created_time": 1807153371,"token": 1345
}]
}
在这里我想删除设备内部的字段,即
"created_time": '',"token": '1345'
这里令牌值是已知的,因此需要删除“created_time”和“token”,其中输出类似于
{
"emailID": "xxx.gmail","token": 123
}]
}
我尝试了如下未设置的代码
var myquery = { 'emailID': emailID,'devices.token':1345};
var newvalues = { $unset:{
'devices.created_time':'','devices.token':1345
} };
and used
updateOne(myquery,newvalues,function(err,res))
但它不起作用。谁能告诉如何删除这个指定的字段。提前致谢。
db.collection.update({
"emailid": "xxx.gmail"
},{
"$pull": {
"devices": {
"token": 123
}
}
})
在此查询中,您告诉 mongo:“删除 -using $pull
- 数组 devices
中的一个字段,其中 token
为 123
”。
示例here
编辑:
此外,如果您只想将一个字段删除到数组中的 objec 而不是对象本身,您可以使用 $[<identifier>]
进行过滤,然后使用 $unset
像这样:
db.collection.update({
"emailid": "xxx.gmail"
},{
"$unset": {
"devices.$[elem].created_time": ""
}
},{
"arrayFilters": [
{
"elem.token": 123
}
]
})
在此查询中,使用 arrayFilters
您只能在 $unset
为 token
的对象中123
。如果需要,您也可以使用 created_time
进行过滤。
示例here
以上是大佬教程为你收集整理的如何从 MongoDB 文档中删除具有指定值的字段?全部内容,希望文章能够帮你解决如何从 MongoDB 文档中删除具有指定值的字段?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。