Vor*_*Vor 7 python arrays mongodb pymongo
{
"_id" : 160,
"info" : [
{
'name': 'Serg',
'proff': 'hacker'
},
null,
]
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我的数组中有null元素,我需要一个通用解决方案,它将从info数组中删除null元素.
我试过这个:
for doc in iter:
people.update({ '_id' : doc['_id']}, { '$pull' : { 'info' : 'null' }})
Run Code Online (Sandbox Code Playgroud)
哪里iter是文件集合.并且people是一个集合
我也在shell中试过这个:
> db.people.findAndModify({ query: {}, update: {'$pull': {info:null} } } )
Run Code Online (Sandbox Code Playgroud)
但是上面的例子都没有从我的文档中删除这个null!))
ann*_*ann 19
这应该适合你.在python中,null称为None.
for doc in iter:
people.update({'_id':doc[id]},{'$pull':{'info':None}})
Run Code Online (Sandbox Code Playgroud)
同样在mongo shell中,这应该是有效的:
db.people.update({_id:160},{$pull:{info:null}})
Run Code Online (Sandbox Code Playgroud)
如果您想要更新运算符,要一次更新多个文档,即从多个文档中提取空值,则必须提供multi:true选项.因为默认情况下,如果查询arguemnt保留为空,即{}和mulit:true未提供,则update运算符将对其找到的第一个文档起作用
db.people.update({},{$pull:{info:null}},{multi:true})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4378 次 |
| 最近记录: |