为什么我找不到基于 ObjectId 的文档?

时间:2021-02-22 07:02:41

标签: mongodb mongodb-query pymongo fastapi

所以我有一些格式如下的文档:

{
_id: ObjectId("5ca4bbc7a2dd94ee5816238c")
account_id: 371138
limit: 9000
products: Array
}

我尝试在 Python 中使用此代码进行查询:

doc = col.find({"_id": ObjectId("5ca4bbc7a2dd94ee5816238c")})

但它总是引发 ValueError: ObjectId is not iterable。想知道我是否遗漏了什么?

2 个答案:

答案 0 :(得分:1)

您的 find() 语法看起来正确;所以也许是别的东西;看看你是否可以让代码片段工作:

from pymongo import MongoClient
from bson.json_util import ObjectId

db = MongoClient()['mydatabase']
col = db.mycollection

col.insert_one({
    '_id': ObjectId("5ca4bbc7a2dd94ee5816238c"),
    'account_id': 371138,
    'limit': 9000,
    'products': 'Array'
})

doc = col.find({"_id": ObjectId("5ca4bbc7a2dd94ee5816238c")})
print(list(doc))

印刷品:

[{'_id': ObjectId('5ca4bbc7a2dd94ee5816238c'), 'account_id': 371138, 'limit': 9000, 'products': 'Array'}]

答案 1 :(得分:0)

使用字典代替这种混乱。像这样定义它并阅读有关如何使用字典的文档。代码:-

details={
    "_id": ObjectId("5ca4bbc7a2dd94ee5816238c"),
    "account_id": 371138,
    "limit": 9000,
    "products": Array
}
相关问题