Le query di stringa normalmente sotto le coperte sono tutte query regex, quindi sarebbero meno efficienti. Tuttavia, l'eccezione è quando si testano i campi di riferimento! Le seguenti query sono:
Model.objects.filter(refs__contains="5305c92956c02c3f391fcaba")._query
{'refs': ObjectId('5305c92956c02c3f391fcaba')}
Che è una ricerca diretta.
Model.objects.filter(refs__in=["5305c92956c02c3f391fcaba"])._query
{'refs': {'$in': [ObjectId('5305c92956c02c3f391fcaba')]}}
Questo probabilmente è meno efficiente, ma sarebbe probabilmente estremamente marginale. L'impatto maggiore sarebbe il numero di documenti e se i refs
o meno il campo ha un indice.