【发布时间】:2014-06-22 20:04:38
【问题描述】:
我正在使用 Pymongo 驱动程序,我的文档如下所示:
{
"_id" : ObjectId("5368a4d583bcaff3629bf412"),
"book_id" : NumberLong(23302213),
"serial_number" : '1122',
}
这是有效的,因为序列号是一个字符串:
find_one({"serial_number": "1122"})
但是,这不是:
find_one({"book_id": "23302213"})
显然是因为 book_id 的数据类型为 NumberLong。如何根据这个数据类型执行 find 方法?
================================================ ===
更新:
仍然无法让它工作,我只能找到字符串值。任何建议将不胜感激。
【问题讨论】:
-
您是否尝试过将数字而不是字符串传递给它?
find_one({"book_id": 23302213})? -
是的,我确实试过了,但没有找到任何东西!
-
当您在解释器中检查该字典时,
book_id的类型是什么? -
试试
find_one({"book_id": long(23302213)}) -
进入shell并执行
db.coll.find( {"book_id": NumberLong(23302213) }