Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更新字段而不是添加到字段pymongo_Python_Database_Mongodb_Pymongo - Fatal编程技术网

Python 更新字段而不是添加到字段pymongo

Python 更新字段而不是添加到字段pymongo,python,database,mongodb,pymongo,Python,Database,Mongodb,Pymongo,每当我尝试更新字段时,它都会将数字添加到字段中,而不是替换它。例如: db.test.update_one({“\u id”:0},{'$inc':{“time”:2}) 如果字段时间中已经有1,则字段时间将更新为3,而不是2。有人能帮忙吗 import pymongo client = pymongo.MongoClient() collection = client.testdb.test print(collection.find_one()) # 'time': 1 coll

每当我尝试更新字段时,它都会将数字添加到字段中,而不是替换它。例如:

db.test.update_one({“\u id”:0},{'$inc':{“time”:2})
如果字段时间中已经有1,则字段时间将更新为3,而不是2。有人能帮忙吗

import pymongo
client = pymongo.MongoClient()
collection = client.testdb.test

print(collection.find_one())    # 'time': 1

collection.update_one( { '_id': 0 }, { '$set': { 'time': 3 } } )
print(collection.find_one())    #  'time': 4

collection.update_one( { '_id': 0 }, { '$inc': { 'time': 1 } } )
print(collection.find_one())    #  'time': 5
可以使用
update\u one
方法更新MongoDB文档数据。您可以对不同的更新操作使用不同的方法,例如,
$set
$inc
$unset

  • $inc
    将字段的值增加指定的量
  • $set
    设置文档中字段的值

您可以在本例中使用上述两个运算符中的任意一个。请注意,
$inc
只能用于带数字的字段。

这是否回答了您的问题?我尝试过,但它仍然只是添加到字段中。max meinz:您可能缺少一些内容,
$set
将覆盖现有值,但不会增加它!!这与输入值的类型无关。post={“coins”:1}集合。update_one({'''u id':1},{“$set”:post},upsert=False)不起作用。