0

たくさんのコレクションを持つデータベースがあります。

それらには「ステータス」があるものとないものがあります。

「ステータス」がないコレクションに「ステータス」:「保留中」を挿入するにはどうすればよいですか?ただし、既にステータスがあるコレクションを上書きすることはできません。

pymongo/flask/python 2.7 の使用

私はこれを試しました:

orders = monDB.find('order')

for order in orders:
    if not order['status']:
        monDB.update('order', {'status':'pending'})
        print 'success'

しかし、何も起こりません。私は何を間違っていますか?

4

1 に答える 1

1

フィールドが存在するかどうかを確認するには $exists を使用し、存在しない場合は $set を使用して作成します。monDB がコレクションであると仮定します。

monDB.update({'status': {'$exists' : False}}, {'$set' : {'status': 'pending'}}, multi=True)

mongo シェルの場合:

> db.myQueue.update({status: {$exists: false}}, {$set : {status: 'pending'}}, false, true)

http://docs.mongodb.org/manual/reference/operators/およびhttp://docs.mongodb.org/manual/applications/update/#crud-update-updateを参照してください。

于 2012-12-07T19:26:27.280 に答える