我正在使用Pymongo驱动程序,我的文档如下所示:
{
"_id" : ObjectId("5368a4d583bcaff3629bf412"),
"book_id" : NumberLong(23302213),
"serial_number" : '1122',
}
这是因为序列号是一个字符串:
^{pr2}$但是,这并不能:
find_one({"book_id": "23302213"})
显然,这是因为book_id的数据类型是NumberLong。如何基于此数据类型执行find方法?在
=====================================================
更新:
仍然无法使其工作,我只能找到字符串值。如有任何建议,将不胜感激。在
您需要确保数据类型匹配。MongoDB对类型很严格。执行此操作时:
您正在向MongoDB请求
^{pr2}$book_id
等于"23302213"
的文档。由于您没有将book_id
存储为string
类型,而是存储为long
类型,因此查询需要考虑:如果出于某种原因,你的应用程序中的ID为string,这也可以:
更新
只需检查它(MacOS64bit、MongoDB 2.6、Python2.7.5、PyMongo2.7),即使提供了一个整数,它也能正常工作。在
集合中的文档(由Mongo shell显示):
python shell的输出:
您可以使用$type: http://docs.mongodb.org/manual/reference/operator/query/type/
整数是16,大整数是18
相关问题 更多 >
编程相关推荐