【问题标题】:Remove null element from mongo array从 mongo 数组中删除空元素
【发布时间】: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! ))

【问题讨论】:

    标签: python arrays mongodb pymongo


    【解决方案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})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-08
      • 2023-03-09
      相关资源
      最近更新 更多