2013-04-18 3 views
41

pymongo를 사용하여 Python으로 ObjectId를 검색해야하지만 항상이 오류가 발생합니다. 어떤 아이디어를 검색하는 방법?pongongo로 mongodb에서 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 
+0

pymongo의 버전은 무엇입니까? – Evgenii

+0

내 버전은 pymongo == 2.5 –

답변

73

필자는 pymongo 2.4.1을 사용합니다.

from bson.objectid import ObjectId 
[i for i in dbm.neo_nodes.find({"_id": ObjectId(obj_id_to_find)})] 
+0

이 작동하지만 pymongo 2.4.1을 사용하면 2.5 오류가 발생할 수 있습니다. –

+0

pymongo를 2.5로 업데이트합니다. 모두 작동합니다. 오류 메시지와 코드를 볼 수 있습니까? – Evgenii

+0

@GerswinLee는 "from bson.objectid"에 주목합니까? 버전 2.5에서 pymongo에서 가져 오기를 시도하는 중 가져 오기 오류가 발생합니다. python-bson 패키지가 필요합니다. 그게 pymongo와 함께 설치되었는지 확실하지 않습니다. – incognick

관련 문제