pymongo로 mongodb에서 ObjectId로 검색


83

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

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

내 버전입니다 == 2.5 pymongo
Gerswin 리

답변:


163

나는 pymongo 2.4.1을 사용합니다.

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

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

@GerswinLee는 "from bson.objectid"를 알고 있습니까? 2.5 버전의 pymongo에서 가져 오려고하면 가져 오기 오류가 발생합니다. python-bson 패키지가 필요합니다. pymongo와 함께 설치되었는지 여부는 확실하지 않습니다.
hyprnick 2013-04-28

그것을 작동 시키려면 obj_id_to_find문자열로 바꿔야했습니다. 즉str(obj_id_to_find)
luke
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.