我有一个模型“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
但是,由于我设置了自定义集合,我希望能够执行以下操作:
for item in customcollection.objects:
print item.title
虽然我得到了:
NameError: global name 'customcollection' is not defined
我需要在语法中做些什么来获取 customcollection 中的所有Post对象?
答案 0 :(得分:2)
如果您希望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
集合中读取其帖子。