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

odstranění scanAndOrder:true ve výsledku dotazu MongoDB

Děkujeme za upozornění na Dex!

Pokud zde v roce 2013 není příliš pozdě, index, který doporučuji, abyste se vyhnuli scanAndOrder zde, je { _id:-1, cl:1, user_id:1 }.

Důvodem je to, že $lt na _id a $in na user_id tvoří rozsahy napříč více indexovými "buckety". Index jakéhokoli jiného než výše uvedeného pořadí znamená, že tyto segmenty musí být stále setříděny dohromady, aby vyhovovaly řazení podle _id. Zadáním _id na první místo budou všechny navštívené dokumenty v indexu předem správně seřazeny.

Všimněte si, že jde o mírné zlepšení oproti Andreovu návrhu ({ _id:-1, user_id:1, cl:1 }, což by se také mělo vyhnout scanAndOrder), protože umožňuje přímou kontrolu ekvivalence na cl pro ořezání výsledků.

Podívejte se na http://blog.mongolab.com/2012/06/cardinal- ins/ pro více podrobností.



  1. $push a $set ve stejné aktualizaci MongoDB

  2. Jak převést BSON Timestamp z Mongo changestream na datum?

  3. Výjimka Mongo

  4. Rychlejší metoda pro přesun dat redis do MySQL