私のプログラムでは、mongodb を update(key, doc, upsert=true) で書き込む 10 のプロセス
「キー」はmongodbインデックスですが、一意ではありません。
query = {'hotelid':hotelid,"arrivedate":arrivedate,"leavedate":leavedate}
where = "data.%s" % sourceid
data_value_where = {where:value}
self.collection.update(query,{'$set':data_value_where},True)
「クエリ」ID 一意でないインデックス
更新が存在するデータを更新するのではなく、新しいデータを作成することがあることがわかりました。
更新メソッドの戻り値のログを書きます。戻り値は " {u'ok': 1.0, u'err': None, u'upserted': ObjectId('5245378b4b184fbbbea3f790'), u'singleShard': u'rs1/192.168 .0.21:10000,192.168.1.191:10000,192.168.1.192:10000,192.168.1.41:10000,192.168.1.113:10000', u'connectionId': 1894107, u'n': 1, u'updatedExisting': False 、u'lastOp': 5928205554643107852L}"
update メソッドを update(query, {'$set':data_value_where},upsert=True, safe=True) に変更しましたが、この質問では 3 に変更はありません。