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

Jak rychle načíst všechny dokumenty MongoDB pymongo

použití $natural sort obejde index a vrátí dokumenty v pořadí, v jakém jsou uloženy na disku, což znamená, že mongo se nemusí zmítat náhodným čtením na vašem disku.

https://docs.mongodb.com/ manual/reference/method/cursor.sort/#return-natural-order

Pokud chcete použít dotaz, výrazně se sníží výkon. Nikdy byste neměli spoléhat na objednávku FIFO. Mongo si umožňuje přesouvat dokumenty v rámci své úložné vrstvy. Pokud vám nezáleží na pořadí, tak ano.

for d in db.docs.find().sort( { $natural: 1 } ):
    mylist.append(d)

v pythonu také chcete použít EXHAUST typ kurzoru, který říká serveru mongo, aby streamoval zpět výsledky, aniž by čekal, až ovladač pymongo potvrdí každou dávku

https://api.mongodb .com/python/current/api/pymongo/cursor.html#pymongo.cursor.CursorType.EXHAUST

Pozor, nikdy to nebude tak rychlé jako skořápka. Nejpomalejším aspektem přesunu dat mezi mongo/bson->pymongo->you je dekódování řetězce UTF8 v rámci pythonu.



  1. Redis na Spark:Task nelze serializovat

  2. Lumen a MongoDB?

  3. MongoDB prázdné znaky

  4. php mongodb '$or' hledání regulárního výrazu