MongoEngine – 高级查询
为了在检索文档中的字段子集时获得更高的效率,使用Objects属性的only()方法。这将显著提高性能,特别是对于长度非常大的字段,如ListField。将需要的字段传递给only()函数。如果在执行only()查询后访问其他字段,将返回默认值。
输出
注意 - 城市属性的值被作为默认值使用。由于没有为PIN指定默认值,它打印为无。
如果你需要丢失的字段,你可以调用reload()函数。
当一个文档类有一个ListField或DictField时,当它被迭代时,任何DBREf对象都会被自动解除引用。为了进一步提高效率,特别是当文档有ReferenceField时,可以通过使用select_related()函数来限制查询的数量,该函数将QuerySet转换为一个列表并实现解引用。
MongoEngine API包含Q类,该类对于构建由许多约束条件组成的高级查询非常有用。Q代表查询的一部分,可以通过关键字参数语法和二进制&和|操作符来初始化。