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

Mongodb:$in-operator vs. mange enkelte forespørgsler

Jeg ville helt klart gå med at bruge $in-forespørgslen og levere en række _ids.

Eksempel:

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

Hvorfor?

  • Hvis du looper, er der en vis mængde opsætning og nedtagning for hver forespørgsel, der skaber og udmatter markører, hvilket ville skabe overhead.
  • Hvis du ikke gør dette på en lokal maskine, opretter det også tcp/ip overhead for hver anmodning. Lokalt kan du bruge domæne-sockets.
  • Der er et indeks på "_id" oprettet som standard, og indsamling af en gruppe dokumenter, der skal returneres i en batch-anmodning, bør være ekstremt hurtig, så der er ingen grund til at dele dette op i mindre forespørgsler.

Der er noget yderligere dokumentation her, hvis du vil tjekke det ud.



  1. gemmer billede til mongodb

  2. Apache HBase I/O – HFile

  3. Sådan sletter du n-te element i array i mongodb

  4. Annoncering af ClusterControl 1.4.2 - DevOps Edition