簡體   English   中英

MongoEngine沒有看到預先存在的記錄

[英]MongoEngine doesn't see pre-existing records

我在MongoEngine中設置我的模型,並嘗試查詢它(我的集合中已有幾十個文檔),但查詢集為空:

>>> mymodel.objects
[]

我可以添加新文檔,這些文檔會顯示在后續查詢中,但是有我之前存在的文檔的標志:

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

是什么賦予了? 作為參考,這是我的模型定義:

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()

如果MongoEngine自己的作者回答了這個問題,我想提前表達你的真實情況!

沒關系,文檔回答了我的問題:

要將MongoEngine與現有數據一起使用,必須在模型定義中設置allow_inheritance = False ,因為MongoEngine的繼承工具在文檔上設置了其他屬性(_cls和_types),然后(顯然)使用它們來過濾MongoEngine查詢。 另一種選擇可能是將這些屬性添加到現有文檔中。

http://docs.mongoengine.org/guide/defining-documents.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM