As consultas de string normalmente ocultas são todas consultas regex, portanto, seriam menos eficientes. No entanto, a exceção é ao testar em campos de referência! As seguintes consultas são:
Model.objects.filter(refs__contains="5305c92956c02c3f391fcaba")._query
{'refs': ObjectId('5305c92956c02c3f391fcaba')}
Que é uma pesquisa direta.
Model.objects.filter(refs__in=["5305c92956c02c3f391fcaba"])._query
{'refs': {'$in': [ObjectId('5305c92956c02c3f391fcaba')]}}
Isso provavelmente é menos eficiente, mas provavelmente seria extremamente marginal. O maior impacto seria o número de documentos e se as
refs
campo tem um índice.