2

私はデータを持っています:

{'_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_type) を見つけることです。value私の場合、それが{'value': 1, 'value_type': 'type1'} and {'value': 136, 'value_type': 'type1'}あり、それらを削除したいと思います。

どうすればそれを達成できますか?

- 編集 -

更新方法 (私の場合は削除) はわかっています。$unset 演算子を使用します。私が知らないのは、削除する必要がある値を見つける方法です。

4

2 に答える 2

2

$pull 更新クエリを使用 http://www.mongodb.org/display/DOCS/Updating#Updating-%24pull

coll.update({}, {"$pull" :{"values": {"value":1}})
于 2012-11-15T15:55:21.317 に答える
1

$pull次のように演算子を使用します。

value = 150
coll.update({}, 
    {'$pull': {'values': {'value_type': 'type1', 'value': {'$lt': value}}}},
    multi=True)

multiパラメーターを に設定するTrueと、最初のドキュメントだけでなく、すべてのドキュメントを更新するように更新プログラムに指示します。

于 2012-11-15T16:10:33.437 に答える