gpt4 book ai didi

mongodb - pymongo UpdateOne 不更新一个字段而是做另一个

转载 作者:行者123 更新时间:2023-12-05 08:08:10 26 4
gpt4 key购买 nike

This post也有我的问题,但没有人回答。我在 mongodb 中有一个模型,其中有一些字段,其中一个名为 synced ,这是一个 bool 字段。使用下面的代码,我想更新一个(或多个小改动)文档的“已同步”字段:

db.bulk_write([UpdateOne({'content_id': '6101-1514301051'}, {'$set': {'synced': True}})]).bulk_api_result

但结果显示找到了一个匹配的文档,但没有更新:

{'writeErrors': [],
'writeConcernErrors': [],
'nInserted': 0,
'nUpserted': 0,
'nMatched': 1,
'nModified': 0,
'nRemoved': 0,
'upserted': []}

当我只对另一个字段做同样的事情时,我得到了正确的答案并且成功应用了更新:

db.bulk_write([UpdateOne({'content_id': '6101-1514301051'}, {'$set': {'visit': 14201}})]).bulk_api_result 
{'writeErrors': [],
'writeConcernErrors': [],
'nInserted': 0,
'nUpserted': 0,
'nMatched': 1,
'nModified': 1,
'nRemoved': 0,
'upserted': []}

我的代码有什么问题,如何将更改应用到 synced 文件?

更多信息:

我也用 mongo-shell 做同样的事情:

> db.my_model_name.updateOne({"content_id": "6101-1514301051"}, {$set: {"synced": true}})
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 0 }

或与

> db.telegram_post_model.update({"content_id": "6101-1514301051"}, {$set: {"synced": true}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 })

但还是无法更新文档。

最佳答案

以下代码对我很有用:

from pymongo import MongoClient
db = MongoClient("mongodb://login:password@server:port/database_name").get_default_database()
db.telegram_post_model.update({"content_id": "6101-1514301051"}, {"$set": {"synced": True}})

关于mongodb - pymongo UpdateOne 不更新一个字段而是做另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51963887/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com