Обновление поля вместо добавления в поле pymongo - PullRequest
0 голосов
/ 23 апреля 2020

Всякий раз, когда я пытаюсь обновить поле, оно заканчивается добавлением номера к полю вместо его замены. Например:

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

Если бы уже было 1 в поле времени, время поля будет обновляться до 3 вместо 2. Может ли кто-нибудь помочь с этим?

1 Ответ

1 голос
/ 23 апреля 2020
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, et c.

  • $inc Увеличивает значение поля на указанную сумму.
  • $set Устанавливает значение поля в документе.

Вы можете использовать любой из двух вышеуказанных операторов в вашем случае. Обратите внимание, что $inc может использоваться только с полями с номерами.

...