我有一个数据:
{'_id': 0, 'values': [{'value': 1, 'value_type': 'type1'}, {'value': 2, 'value_type': 'type2'}, {'value': 134, 'value_type' : 'type1'}, {'value': 2564, 'value_type': 'type212'}]}
{'_id': 1, 'values': [{'value': 136, 'value_type': 'type1'}, {'value': 465652, 'value_type': 'type1'}, {'value': 4, 'value_type' : 'type299'}, {'value': 112564, 'value_type': 'type2456'}]}
我正在使用pymongo 2.2和python 3.2。
其目的是找到
value_type
等于type1
且value
的最小值的字典(value和value_type)来删除它们。在我的例子中,这是{'value': 1, 'value_type': 'type1'} and {'value': 136, 'value_type': 'type1'}
并且我想删除它们。我怎样才能做到这一点?
--编辑--
我知道如何更新(在我的例子中是delete),我将使用$unset操作符。我不知道的是如何找到需要删除的值。
最佳答案
使用$pull
运算符,如下所示:
value = 150
coll.update({},
{'$pull': {'values': {'value_type': 'type1', 'value': {'$lt': value}}}},
multi=True)
将
multi
参数设置为True
将告诉更新程序更新所有文档,而不仅仅是第一个文档。关于python - 在pymongo中查找嵌套值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13401052/