我有两个集合ScenarioDrivers
和{
class ScenarioDrivers(Document):
meta = {
'collection': 'ScenarioDrivers'
}
ScenarioId = ReferenceField('ModelScenarios')
DriverId = ReferenceField('ModelDrivers')
DriverCalibrationMethod = StringField()
SegmentName = StringField()
DriverValue = ListField()
CalibrationStatus = StringField()
AdjustedValues = ListField(default=[])
CreateDate = DateTimeField(default=ObjectId().generation_time)
LastUpdateDate = DateTimeField(default=datetime.utcnow())
class ModelDrivers(Document):
meta = {
'collection': 'ModelDrivers'
}
PortfolioModelId = ReferenceField('PortfolioModels')
DriverName = StringField()
CreateDate = DateTimeField(default=ObjectId().generation_time)
LastUpdateDate = DateTimeField(default=datetime.utcnow())
FieldFormat = StringField()
DriverData = ListField()
我的问题是这样的。在
^{pr2}$查询匹配1140
条记录,然后构造一个字典并将其作为一个列表。在
但是这个API调用需要30s
来处理1140
记录。我在哪里失踪?请帮忙。我使用的是最新版本的Pymongo和MongoEngine。在
我认为问题不在于你的查询,而在于你循环了1140条记录。我看不到引用对象的任何用法,因此您应该考虑删除},最好将它们保存为文档的一部分。i、 e.用
select_related(1)
。一旦您这样做了,如果您想将引用对象id转换为字符串,您可以使用as_pymongo()
,默认情况下它将为您完成此操作。最后,如果必须读取某些特定格式的数据,如formatted_date
或{LastUpdateDate
保存FormattedLastUpdateDate
。在MongoDB中,保存文档时必须考虑特定于读的逻辑。在相关问题 更多 >
编程相关推荐