我使用的是django1.6.8和mongoengine0.8.2。在
我有两个类,ServiceDocument和OptionDocument。ServiceDocument保存一个OptionDocuments列表。有数百万个服务文档(250万个以上)。在
我要选择具有两个以上optiondocument的每个ServiceDocument。在
我“希望”这能起作用,但结果是0:
ServiceDocument.objects.filter(options__size__gt=2).count()
这就是我的工作:
^{pr2}$最后,如果我有较少的ServiceDocuments和/或我可以让迭代器工作,我可以自己循环它们,但是在内存填满几秒钟后,我会得到segfaults(我猜任何对.all()的操作都会尝试将它们全部收集到内存中)。在
对于迭代器,我尝试了以下操作,但没有成功:
iter(ServiceDocument.objects.all())
嗯,我认为你需要找到一个解决这个问题的方法,因为mongoengine不支持你的查询。你可以做的是添加另一个字段,比如“选项长度”并将选项长度字段存储在此字段中。然后您可以使用'\uugt>;2'进行查询。额外的代价是您需要重写模型保存函数,以便在每次保存时更新长度。您还需要为此更新现有记录。在
你也可以读这个 question
相关问题 更多 >
编程相关推荐