Las consultas de cadena normalmente debajo de las cubiertas son todas consultas de expresiones regulares, por lo que serían menos eficientes. Sin embargo, la excepción es cuando se prueba contra campos de referencia. Las siguientes consultas son:
Model.objects.filter(refs__contains="5305c92956c02c3f391fcaba")._query
{'refs': ObjectId('5305c92956c02c3f391fcaba')}
Que es una búsqueda directa.
Model.objects.filter(refs__in=["5305c92956c02c3f391fcaba"])._query
{'refs': {'$in': [ObjectId('5305c92956c02c3f391fcaba')]}}
Esto probablemente sea menos eficiente, pero probablemente sería extremadamente marginal. El mayor impacto sería la cantidad de documentos y si las refs
el campo tiene un índice.