我有以下查询
DB_HOST = '127.0.0.1'
COLLECTION = 'scraper'
db = pymongo.MongoClient(DB_HOST)[COLLECTION]['scrap']
db.update({'indice':0, 'thread_id':{'$in':list_to_update}},{'updated':'yes'}, multi=True)
其中list_to_update是一个thread_ids列表,我想插入字段'更新'到了'是'
我收到以下错误
pymongo.errors.OperationFailure: multi update only works with $ operators
有什么想法吗?
答案 0 :(得分:7)
使用$set
运算符:
db.update({'indice':0, 'thread_id': {'$in': list_to_update}},
{'$set': {'updated':'yes'}},
multi=True)
答案 1 :(得分:6)
使用update_many
:
xxx.update_many({'indice':0, 'thread_id': {'$in': list_to_update}}, {'$set': {'updated':'yes'}})
如果你不需要upsert,你可以通过upsert=False
。
链接到文档:
here