我有一堆带有一堆集合的数据库。
他们中的一些人有'身份',有些则没有。
如何将'status':'pending'插入缺少'status'的集合中 - 但不会覆盖已经拥有状态的集合?
使用pymongo / flask / python 2.7
我试过了:
orders = monDB.find('order')
for order in orders:
if not order['status']:
monDB.update('order', {'status':'pending'})
print 'success'
但没有任何反应。我做错了什么?
答案 0 :(得分:1)
使用$ exists检查字段是否存在,如果不存在则设置为$。假设monDB是你的收藏:
monDB.update({'status': {'$exists' : False}}, {'$set' : {'status': 'pending'}}, multi=True)
在mongo shell中:
> 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。