从 mongo 数组中删除空元素
Posted
技术标签:
【中文标题】从 mongo 数组中删除空元素【英文标题】:Remove null element from mongo array 【发布时间】:2013-01-26 04:13:20 【问题描述】:
"_id" : 160,
"info" : [
'name': 'Serg',
'proff': 'hacker'
,
null,
]
如您所见,我的数组中有 null 元素,我需要一个通用的解决方案来从 info 数组中删除 null 元素。
我试过这个:
for doc in iter:
people.update( '_id' : doc['_id'], '$pull' : 'info' : 'null' )
其中iter
是文档的集合。而people
是一个集合
我也在 shell 中试过这个:
> db.people.findAndModify( query: , update: '$pull': info:null )
但以上示例均未从我的文档中删除此 null! ))
【问题讨论】:
【参考方案1】:这应该适合你。在 python 中,null 被称为 None。
for doc in iter:
people.update('_id':doc[id],'$pull':'info':None)
null object in Python?
同样在 mongo shell 中,这应该可以解决:
db.people.update(_id:160,$pull:info:null)
如果您希望更新运算符一次更新多个文档,即从多个文档中提取空值,则必须提供 multi:true 选项。因为默认情况下,如果查询arguemnt 留空,即 并且未提供mulit:true,则更新运算符将处理它找到的第一个文档
db.people.update(,$pull:info:null,multi:true)
【讨论】:
以上是关于从 mongo 数组中删除空元素的主要内容,如果未能解决你的问题,请参考以下文章