首页 > 解决方案 > ndb.Expando 模型属性的控制索引

问题描述

我有一个包含 ndb.Expando 模型作为结构化属性的 ndb.Model,我希望能够控制索引,但我在文档中找不到任何关于它的内容。

class MyModel2(ndb.Expando):
    pass

class MyModel(ndb.Model):
    sub_entity = ndb.StructuredProperty(MyModel2)

我能找到的唯一文档如下:

您可以指定结构化属性的常用属性选项(索引除外)

我认为这是因为应该在嵌入式模型中基于每个属性指定实际索引。但是,尚不清楚如何启用或禁用 Expando 模型属性的索引。

标签: pythongoogle-app-enginegoogle-cloud-datastore

解决方案


您可以使用 _properties 对象来设置字段是否应该被索引。例如

a = MyModel2()
a.value = '3'
a._properties['value']._indexed = False

您可以在_properties上找到更多详细信息。


推荐阅读