pymongoを使用してmongodbのObjectIdで検索


82

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

私のバージョンはpymongo == 2.5
Gerswin Lee 2013

回答:


162

pymongo2.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 2013

@GerswinLeeは「frombson.objectid」に気づきましたか?バージョン2.5のpymongoからインポートしようとするとインポートエラーが発生します。python-bsonパッケージが必要です。それがpymongoと一緒にインストールされているかどうかはわかりません。
hyprnick 2013

私は仕事にそれを得るためには、私がオンしていたobj_id_to_findつまり文字列にstr(obj_id_to_find)
ルーク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.