我需要使用 pymongo 使用 python 搜索 ObjectId,但总是收到此错误。有什么想法如何搜索吗?
import pymongo
from pymongo import MongoClient
from pymongo import ObjectId
gate = collection.find({'_id': ObjectId(modem["dis_imei"])})
print gate
Traceback (most recent call last):
File "C:\Users\gerswin\Documents\Proyectos\Demonio py\test.py", line 2, in <module>
import pymongo
File "C:\Python27\lib\site-packages\pymongo\__init__.py", line 80, in <module>
from pymongo.connection import Connection
File "C:\Python27\lib\site-packages\pymongo\connection.py", line 39, in <module>
from pymongo.mongo_client import MongoClient
File "C:\Python27\lib\site-packages\pymongo\mongo_client.py", line 45, in <module>
from pymongo import (auth,
File "C:\Python27\lib\site-packages\pymongo\database.py", line 22, in <module>
from pymongo.collection import Collection
File "C:\Python27\lib\site-packages\pymongo\collection.py", line 25, in <module>
from pymongo.cursor import Cursor
File "C:\Python27\lib\site-packages\pymongo\cursor.py", line 19, in <module>
from bson import RE_TYPE
ImportError: cannot import name RE_TYPE
我使用pymongo 2.4.1。
from bson.objectid import ObjectId
[i for i in dbm.neo_nodes.find({"_id": ObjectId(obj_id_to_find)})]
假设每个文档都有一个唯一的
ObjectId
,我们可以直接使用find_one
来搜索它。一个例子如下:
from bson import ObjectId
collection.find_one(ObjectId("6634fd508a186b81614c999f"))
请注意,与返回游标的
collection.find({})
不同(因此必须迭代才能获取实际文档),上面的调用返回 dict (如果有匹配)或 None (如果没有匹配)。