【发布时间】:2016-04-07 01:57:36
【问题描述】:
通过使用 pymongo,我可以像这样连接到一个集合:
conn = pymongo.MongoClient()
db = conn.example
collection = db.col
然后,我可以连接到名为“example”的数据库和名为“col”的集合。
而且我还可以编写像这样的代码:
dbname = 'example'
collectionName = 'col'
conn = pymongo.MongoClient()
db = conn[dbname]
connection = db[collectionName]
这两个代码块会做同样的事情。
现在,我使用 mongoengine 连接到 MongoDB,并且我有一个带有 collectionA 的数据库,我还有一个名为 'model.py' 的文件中的类:
class collectionA(Document):
A=StringField()
B= StringField()
所以我只能使用:
import model
x = model.collectionA.object()
查询数据。
因为我有这么多收藏,所以我想用
model[collectionName].object()
查询数据,但是抛出异常,mongoengine好像不支持model[xxx]的形式连接集合。
那么,有什么办法可以解决这个问题吗?
【问题讨论】:
-
您是否尝试过
import appname.model,其中appname 是您的应用名称,然后model['collectionName'].object()?另外,您使用model[collectionName].object()会遇到什么错误 -
应用名称?这是一个python脚本。
-
把它误认为是 Django 应用程序,因为您在 Django 中使用模型。你遇到了什么错误?
-
其实这是flask,不是Django。错误是: TypeError: 'module' object has no attribute 'getitem'
标签: python mongodb mongoengine