【问题标题】:search by ObjectId in mongodb with pymongo使用 pymongo 在 mongodb 中按 ObjectId 搜索
【发布时间】:2013-04-11 00:45:19
【问题描述】:

我需要使用 python 使用 pymongo 搜索 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

【问题讨论】:

  • pymongo 的版本是什么?
  • 我的版本是pymongo==2.5

标签: python mongodb pymongo


【解决方案1】:

我使用 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 - 一切正常。你能看到错误信息和你的代码吗?
  • @GerswinLee 注意到“来自 bson.objectid”?尝试从 2.5 版的 pymongo 导入它时会出现导入错误。你需要 python-bson 包。我不确定是否安装了 pymongo。
  • 为了让它工作,我必须把 obj_id_to_find 变成一个字符串,即 str(obj_id_to_find)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 2017-09-17
  • 1970-01-01
  • 2021-09-15
  • 2022-12-12
相关资源
最近更新 更多