【问题标题】:python mongoengine keys of document文档的python mongoengine键
【发布时间】:2021-02-24 10:15:16
【问题描述】:

我开始在 Python 中使用 mongoengine 作为已建立集合上的 Document-Object Mappe。文档较少架构。现在对于开发、调试和可能在应用程序中的问题,对象User 具有哪些字段/键是令人感兴趣的问题。

是否有不同的方法来实现相同的,可能不需要每次都查询文档?

class User(DynamicDocument):
    field_one = StringField()

    def keys(self):
        return type(self).objects.as_pymongo().filter(id=self.id).first().keys()

【问题讨论】:

    标签: python mongoengine


    【解决方案1】:

    您可以为此使用instance._data.keys(),它将结合已知字段和动态字段。

    from mongoengine import *
    connect()
    
    class TestDoc(DynamicDocument):
        f1 = StringField()
    
    # simulate document with dynamic fields
    td1 = TestDoc(f1='garbage1')
    td1.other_field = 'garbage2'
    td1.other_field2 = 'garbage99'
    td1.save()
    
    # show how it looks in the database
    print(TestDoc.objects.as_pymongo())    # [{'_id': ObjectId('...'), 'f1': 'garbage1', 'other_field': 'garbage2', 'other_field2': 'garbage99'}]
    
    doc = TestDoc.objects.first()
    print(doc._data.keys())    # ['f1', 'id', 'other_field', 'other_field2']
    

    您还可以查看instance._dynamic_fields.keys(),它将仅列出动态的。

    【讨论】:

      猜你喜欢
      • 2023-04-02
      • 1970-01-01
      • 2016-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多