sql >> Databáze >  >> NoSQL >> MongoDB

Mongodb:operátor $in vs mnoho jednotlivých dotazů

Určitě bych použil dotaz $in a poskytl pole _id.

Příklad:

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

Proč?

  • Pokud zacyklíte, existuje určité množství nastavení a odstranění pro každý dotaz, který vytváří a vyčerpává kurzory, což by vytvořilo režii.
  • Pokud to neděláte na místním počítači, vytváří také režii tcp/ip pro každý požadavek. Lokálně můžete použít doménové sokety.
  • Na "_id" je ve výchozím nastavení vytvořen index a shromažďování skupiny dokumentů, které mají být vráceny v dávkovém požadavku, by mělo být extrémně rychlé, takže není potřeba je rozdělovat na menší dotazy.

Pokud si ji chcete prohlédnout, je zde nějaká další dokumentace.



  1. redis:zálohování dump.rdb

  2. jak vyprší platnost klíče mapy v REDIS?

  3. Embedded Redis pro Spring Boot

  4. Soubory vytvořené MongoDB