我有一个模型“ Post”:
class Post(db.Document):
created_at = db.DateTimeField(default=datetime.datetime.now, required=True)
title = db.StringField(max_length=255, required=True)
slug = db.StringField(max_length=255, required=True)
body = db.StringField(required=True)
假设我用Post对象创建了一个
post
变量,但是在将其保存之前,我将其保存为默认名称(Post)以外的其他集合名称,例如:post._meta['collection'] = "customcollection"
post.save();
然后,如何使用mongoengine获取customcollection中的所有文档?
通常,如果我未设置customcollection,则可以执行以下操作:
for item in Post.objects:
print item.title
但是,由于我设置了一个customcollection,因此我希望能够执行以下操作:
for item in customcollection.objects:
print item.title
虽然我得到:
NameError: global name 'customcollection' is not defined
为了能够获取我的customcollection中的所有Post对象,我需要在语法上做什么?
最佳答案
如果要Post
文档类指向customcollection
,请执行以下操作:
class Post(db.Document):
created_at = db.DateTimeField(default=datetime.datetime.now, required=True)
title = db.StringField(max_length=255, required=True)
slug = db.StringField(max_length=255, required=True)
body = db.StringField(required=True)
meta = {'collection': 'customcollection'}
现在,当您执行以下操作时:
for item in Post.objects:
print item.title
它应该从
customcollection
集合中读取其帖子。关于python - 如何使用python的mongoengine检索不同集合中的记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11874681/