2013-04-18 2 views
41

Мне нужно найти ObjectId с помощью python с помощью pymongo, но я всегда получаю эту ошибку. Любые идеи, как искать?поиск по ObjectId в mongodb с pymongo

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»? Вы получите ошибку импорта, пытающуюся импортировать ее из pymongo в версии 2.5. Вам нужен пакет python-bson. Я не уверен, что он установлен с пимонго или нет. – incognick

Смежные вопросы