pymongo更新\u一个未基于\u id更新

2024-09-28 17:22:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一套零钱:

change_set = {'name': 'bso save job again', 'location': 'new york city', 'expires': '2020-04-04', 'created': '2020-03-05'}

使用此id(我不是在创建此id,它实际上来自早期的保存):

id = '5e6107ddfef5aa3c2e3647b2'

我正在尝试这样做:

result = dbjobs.update_one({'_id': id}, {'$set': change_set})

我的结果。原始结果如下:

{'n': 0, 'nModified': 0, 'ok': 1.0, 'updatedExisting': False}

这不是一个错误,我只是得到零零钱。我更新错了吗


Tags: nameidcitynewsavejoblocationchange
1条回答
网友
1楼 · 发布于 2024-09-28 17:22:20

TLDR:您的id应该是ObjectId类型,而不是string

将此添加到您的代码中:

from bson.objectid import ObjectId
id = ObjectId('5e6107ddfef5aa3c2e3647b2')

调试此类问题的简要说明:

通过查看update_one的返回值,特别是ok字段返回1,表示操作成功

再加上n=0意味着Mongo无法匹配任何文档,因此问题出在操作的查询部分

相关问题 更多 >