从mongo数组中删除null元素

{
        "_id" : 160,
        "info" : [
            {
                'name': 'Serg',
                'proff': 'hacker'
            },
            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! ))


这应该适合你。 在python中,null被称为None。

    for doc in iter:
        people.update({'_id':doc[id]},{'$pull':{'info':None}})

Python中的空对象?

另外在mongo shell中,这应该可以解决:

    db.people.update({_id:160},{$pull:{info:null}})

如果你想要更新操作符,一次更新一个文档,即从多个文档中提取空值,那么你必须提供multi:true选项。 因为默认情况下,如果查询arguemnt保留为空,即{}和mulit:true未提供,则更新运算符对它找到的第一个文档起作用

    db.people.update({},{$pull:{info:null}},{multi:true})
链接地址: http://www.djcxy.com/p/76623.html

上一篇: Remove null element from mongo array

下一篇: How to "test" NoneType in python?