我正在尝试根据子文档的一个字段的条件从子文档中检索id。以下是文档模式
class father(DynamicDocument):
name = StringField
class child(DynamicDocument):
name = StringField
parent = ReferenceField('father')
如果孩子的父亲叫‘阿纳金’,我怎么才能得到孩子的身份证
我正在尝试此查询:
Child.objects.filter(parent__name=Father.objects(name='Anakin').first().id).first().id
但结果是:
mongoengine.errors.InvalidQueryError: Cannot perform join in mongoDB: parent__name
在1查询中没有简单的方法可以做到这一点,因为MongoDB没有连接
使用MongoEngine执行此操作的推荐方法是使用2个查询:
CachedReferenceField可能也是您感兴趣的,它在父集合中缓存(即复制)一些属性,允许您进行这种“连接”。但是,由于保持缓存属性与原始文档同步的开销,它会降低性能
相关问题 更多 >
编程相关推荐