1

我有一个模型“帖子”:

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 对象?

4

1 回答 1

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它应该从集合中读取其帖子。

于 2012-08-09T03:22:52.180 回答