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

问题描述 投票:0回答:1

每当我试图更新一个字段时,它最终会将数字添加到字段中,而不是替换它。例如:如果字段时间中已经有1,那么字段时间就会更新为3而不是2。

db.test.update_one({"_id": 0}, {'$inc': {"time": 2}})

如果字段时间里已经有1了 字段时间就会更新为3而不是2 谁能帮帮我?

python database mongodb pymongo
1个回答
1
投票
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

MongoDB的文档数据可以通过使用 update_one 方法。您可以使用不同的 更新操作员 对于不同的更新操作,例如。$set, $inc, $unset等。

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

您可以在您的情况下使用上述两个操作符中的任何一个。注意 $inc 只能用于带数字的字段。

© www.soinside.com 2019 - 2024. All rights reserved.