Python MongoEngine没有';我看不到已有的记录

Python MongoEngine没有';我看不到已有的记录,python,mongoengine,Python,Mongoengine,我在MongoEngine中设置了我的模型,并尝试查询它(我的集合中已经有几十个文档),但queryset是空的: >>> mymodel.objects [] 我可以添加新文档,这些文档会在后续查询中显示,但有迹象表明我已经存在文档: >>> thingy = mymodel(a=2, b=3) >>> thingy.save() >>> mymodel.objects [<mymodel: mymodel obj

我在MongoEngine中设置了我的模型,并尝试查询它(我的集合中已经有几十个文档),但queryset是空的:

>>> mymodel.objects
[]
我可以添加新文档,这些文档会在后续查询中显示,但有迹象表明我已经存在文档:

>>> thingy = mymodel(a=2, b=3)
>>> thingy.save()
>>> mymodel.objects
[<mymodel: mymodel object>]

如果MongoEngine的作者自己回答了这个问题,我想提前表达一下,你真是太棒了

没关系,医生们回答了我的问题:

要将MongoEngine与现有数据一起使用,必须在模型定义中设置
allow_heritation=False
,因为MongoEngine的继承工具在文档上设置了附加属性(_cls和_类型),然后(显然)使用它们来过滤MongoEngine查询。另一个选项可能是将这些属性添加到现有文档中

from django.conf import settings
from mongoengine import *

connect(settings.MONGO_DATABASE, 
        host=settings.MONGO_HOST, port=settings.MONGO_PORT)

class metadata(Document):

    meta = {'collection': 'metadata'}

    _id   = StringField()
    name  = StringField()
    _type = StringField()
    terms = ListField()
    level = StringField()
    abbreviation  = StringField()
    latest_update = DateTimeField()
    feature_flags = ListField()
    session_details  = DictField()
    legislature_name = StringField()
    lower_chamber_name = StringField()
    upper_chamber_term = IntField()
    upper_chamber_name = StringField()
    lower_chamber_term = IntField()
    lower_chamber_title = StringField()
    upper_chamber_title = StringField()
    _ignored_scraped_sessions = ListField()