4
我有一個ListField與ids(ReferenceField)模型,我需要做一個查詢,如果一個特定的ID是在該列表中。據我所知我對這個2種選擇:在mongoengine中查詢列表;包含vs在
Model.objects.filter(refs__contains='59633cad9d4bc6543aab2f39')
或:
Model.objects.filter(refs__in=['59633cad9d4bc6543aab2f39'])
哪一個是最有效的這種使用情況?
這個模型看起來像:
class Model(mongoengine.Document):
refs = mongoengine.ListField(mongoengine.ReferenceField(SomeOtherModel))
從我可以在mongoengine文檔閱讀,http://docs.mongoengine.org/guide/querying.html#string-queries,包含確實是一個查詢字符串,但令人驚訝的在這裏工作也是如此。但我猜測__in更有效率,因爲它應該爲列表進行優化,還是我錯了?