Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从mongo数组中删除空元素_Python_Arrays_Mongodb_Pymongo - Fatal编程技术网

Python 从mongo数组中删除空元素

Python 从mongo数组中删除空元素,python,arrays,mongodb,pymongo,Python,Arrays,Mongodb,Pymongo,正如您所看到的,我的数组中有null元素,我需要一个通用的解决方案,可以从info数组中删除null元素 我试过这个: { "_id" : 160, "info" : [ { 'name': 'Serg', 'proff': 'hacker' }, null, ] } 其中,iter是一组文件。而peop

正如您所看到的,我的数组中有null元素,我需要一个通用的解决方案,可以从info数组中删除null元素

我试过这个:

{
        "_id" : 160,
        "info" : [
            {
                'name': 'Serg',
                'proff': 'hacker'
            },
            null,
        ]
    }
其中,
iter
是一组文件。而
people
是一个集合

我也在shell中尝试过这个:

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

但是上面的例子都没有从我的文档中删除这个空值!!))

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

> db.people.findAndModify({ query: {}, update: {'$pull': {info:null} } } )

同样在mongo shell中,这应该可以解决:

    for doc in iter:
        people.update({'_id':doc[id]},{'$pull':{'info':None}})
如果希望update操作符一次更新多个文档,即从多个文档中提取空值,则必须提供multi:true选项。因为默认情况下,如果查询arguemnt为空,即{},并且未提供mulit:true,则update操作符将处理它找到的第一个文档

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