gpt4 book ai didi

python - 当传递_id作为查询参数时,PyMongo find_one()不返回任何内容

转载 作者:行者123 更新时间:2023-12-03 09:59:55 24 4
gpt4 key购买 nike

我的Mongo数据库中只有一个文档:

{"_id" : ObjectId("569bbe3a65193cde93ce7092"), 
"categories" : [{_id: 0, "category": "Groceries"},
{_id: 1, "category": "Bills"}, . . .]}

在我的项目中使用PyMongo,我得到此结果,调用 find_one():
x = db.collection.find_one({"_id": "ObjectId(\"569bbe3a65193cde93ce7092\")"})
print(x)
// None

每当我在Mongo Shell中执行相同的查询时,它都会返回我的文档。我一辈子都无法弄清楚为什么这行不通。使用 find({})返回文档,所以我知道PyMongo可以看到它。

我可以调用 find_one({"categories": {"$exists": True}})来检索文档,由于这将是唯一包含“类别”的文档,因此可以使用;但是,现在让我困惑的是,为什么通过 _id访问文档给我带来了这样的麻烦。逃避引号和引号包裹 569bbe3a65193cde93ce7092都没有任何区别。

最佳答案

要添加到@Simulant答案中,您需要从ObjectId导入bson.objectid:

from bson.objectid import ObjectId

x = db.collection.find_one({"_id": ObjectId("569bbe3a65193cde93ce7092")})

关于python - 当传递_id作为查询参数时,PyMongo find_one()不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34841500/

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