MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Mongodb :$in operator vs molte singole query

Vorrei sicuramente utilizzare la query $in e fornire una matrice di _ids.

Esempio:

db.collection.find({
    "key": {
        "$in": [
            ObjectId("xxx"),
            ObjectId("yyy"),
            ObjectId("zzz")
        ]
    }
})

Perché?

  • Se esegui il ciclo, c'è una certa quantità di configurazione e smontaggio per ogni query che crea ed esaurisce i cursori che creerebbero un sovraccarico.
  • Se non lo stai facendo su una macchina locale, crea anche un sovraccarico tcp/ip per ogni richiesta. A livello locale potresti usare socket di dominio.
  • Esiste un indice su "_id" creato per impostazione predefinita e la raccolta di un gruppo di documenti da restituire in una richiesta batch dovrebbe essere estremamente veloce, quindi non è necessario suddividerlo in query più piccole.

C'è della documentazione aggiuntiva qui se vuoi verificarla.