Suche nach ObjectId in Mongodb mit Pymongo

83

Ich muss eine Objekt-ID mit Python mit Pymongo suchen, aber ich erhalte immer diesen Fehler. Irgendwelche Ideen, wie man sucht?

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
Gerswin Lee
quelle
1
Was ist eine Version von Pymongo?
Evgenii
Meine Version ist Pymongo == 2.5
Gerswin Lee

Antworten:

166

Ich benutze Pymongo 2.4.1.

from bson.objectid import ObjectId
[i for i in dbm.neo_nodes.find({"_id": ObjectId(obj_id_to_find)})]
Evgenii
quelle
Ich aktualisiere Pymongo auf 2.5 - alles funktioniert. Können Sie eine Fehlermeldung und Ihren Code sehen?
Evgenii
@GerswinLee bemerken die "von bson.objectid"? Beim Importieren aus Pymongo in Version 2.5 wird ein Importfehler angezeigt. Sie benötigen das Python-Bson-Paket. Ich bin mir nicht sicher, ob das mit Pymongo installiert ist oder nicht.
Hyprnick
Für mich ist es zur Arbeit zu kommen, musste ich drehen , obj_id_to_finddh in einen Stringstr(obj_id_to_find)
luke