[英]db.collection.update $set is not working
我正在使用gv3.6.2 mongo db,並使用$ set更新一個字段,但它不起作用並且對為什么一無所知?
from pymongo import MongoClient .
from bson import ObjectId
import os,pymongo
dbuser = os.environ.get('user', '')
dbpass = os.environ.get('pwd', '')
uri = 'mongodb://{dbuser}:{dbpass}@machineip/data'.format(**locals())
client = MongoClient(uri)
db = client.data
collection = db['test']
print db.version
db.collection.update(
{ "_id" : ObjectId("5a95a1c32a2e2e0025e6d6e2") },
{ "$set":
{
"status": "submission"
}
}
)
Document:
{
"_id" : ObjectId("5a95a1c32a2e2e0025e6d6e2"),
"status" : "Submitting",
"endRev" : "9531c3448d3f7713dc74c4b05d177ecf0c6e4df6",
"chip" : "4364",
}
由於查詢的匹配部分,您的更新無法正常進行:
{ "_id": "5a95a1c32a2e2e0025e6d6e2" }
那就是在搜索帶有字符串 _id
的文檔。 您必須強制轉換為ObjectId才能找到匹配的文檔並執行更新。
{ "_id" : ObjectId("5a95a1c32a2e2e0025e6d6e2") }
還請確保包含from pymongo import ObjectId
。
使用update_many
更新多個文檔。 如果要更新一個文檔,請使用update_one
。 實際上不建議使用update
。
from bson import ObjectId
db.collection.update_many({"_id" : ObjectId("5a95a1c32a2e2e0025e6d6e2")}, {"status": "submission"})
希望對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.