所以我有一些格式如下的文档:
{
_id: ObjectId("5ca4bbc7a2dd94ee5816238c")
account_id: 371138
limit: 9000
products: Array
}
我尝试在 Python 中使用此代码进行查询:
doc = col.find({"_id": ObjectId("5ca4bbc7a2dd94ee5816238c")})
但它总是引发 ValueError: ObjectId is not iterable。想知道我是否遗漏了什么?
答案 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
}