用Mongoengine查询嵌套文档
我一直在尝试使用python和 我需要从所有集合中的每个RegistroPozo获取所有变量 示例代码:用Mongoengine查询嵌套文档,mongoengine,Mongoengine,我一直在尝试使用python和 我需要从所有集合中的每个RegistroPozo获取所有变量 示例代码: from mongoengine import * class Variable(EmbeddedDocument): mnem=StringField(required=True, max_length=200) description=StringField(max_length=500) unit=StringField( max_length=200,defa
from mongoengine import *
class Variable(EmbeddedDocument):
mnem=StringField(required=True, max_length=200)
description=StringField(max_length=500)
unit=StringField( max_length=200,default='ppm')
alias=StringField( max_length=200) #,default=mnem
type=StringField( max_length=200,default='DEPENDANT')
class RegistroPozo(EmbeddedDocument):
fecha = DateTimeField()
filepath = StringField()
start = FloatField()
step = FloatField()
stop = FloatField()
variables = EmbeddedDocumentListField(Variable)
registros = ListField(DictField())
version_information_block = StringField(max_length=500)
well_information_block = StringField(max_length=500)
curve_information_block = StringField(max_length=500)
parameter_information_block = StringField(max_length=500)
other_block = StringField(max_length=500)
class Pozo(DynamicDocument):
uwi_pozo = StringField(required=True, max_length=200, primary_key=True)
nom_pozo = StringField(required=True, max_length=200)
prof_total = FloatField(required=True)
elev_terr = FloatField(required=True)
long_pozo = FloatField(required=True)
lat_pozo = FloatField(required=True)
coord_x_po = FloatField(required=True)
coord_y_po = FloatField(required=True)
registros_pozo=EmbeddedDocumentListField(RegistroPozo)
当我尝试查询时,我会做很多循环,但我相信有更好的方法。
比如:
variables_in_all_the_doc = Pozo.objects(Q(AdvanceQuery))
Pozo是mongo db级别的单个文档。嵌入的文档只是mongoengine构造。因此,当您读取Pozo对象时,所有嵌入的文档也可以在同一查询中使用check。现在对这些数据进行迭代并不是什么大问题。对于高级EmbeddedDocumentList查询,请阅读文档