Mongo引擎查询引用域

noo*_*per 7 python mongodb django-mongodb-engine

我已经定义了类声明:

from mongoengine import *
class TickDataDocument(Document):
"""
"""
    instrument_id = StringField(max_length=10, unique=True, required=True)
    tick_data = ReferenceField(TickDocument)


class TickDocument(Document):
"""
"""
    price = DecimalField(precision=2, required=True) 
    volume = LongField(required=True)  
    turnover = DecimalField(precision=2, required=True)  
    update_time = DateTimeField(unique=True, required=True)
Run Code Online (Sandbox Code Playgroud)

我想在一段时间内查询update_time.

 TickDataDocument.objects(instrument_id="fa1100").filter(tick_data__ update_time__lt =datetime.datetime(2013,9,3))
Run Code Online (Sandbox Code Playgroud)

但是我得到了错误:

mongoengine.errors.InvalidQueryError:无法在mongoDB中执行连接:tick_data__update_time

我怎么能有五个解决方案来查询mongoengine中的内部引用字段.

Jér*_*ôme 6

正如评论中所建议的,我分两步执行此操作(两个查询):

tick_docs = list(TickDocument.object(update_time__lt)=datetime.datetime(2013,9,3))

TickDataDocument.objects(instrument_id="fa1100").filter(tick_data__in=tick_docs)
Run Code Online (Sandbox Code Playgroud)

如果有任何更简单的解决方案,我也很感兴趣。

  • 这是唯一的方法吗?如果 `TickDocument` 的行数过多,可能会出现内存问题。 (2认同)