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

MongoDB :Proč bychom měli zavřít kurzor po jeho použití?

Zavření kurzoru je skutečně nutné pouze tehdy, když výsledky „nevyčerpáte“. Nebo jinými slovy, iterujte přes všechny možné výsledky vrácené kurzorem.

Nechat "kurzor" otevřený je jako nechat otevřené připojení, které se nikdy znovu nepoužije. Tyto věci nejsou zadarmo. Ve skutečnosti jsou standardní náklady na připojení 1 MB (přibližně). Pokud tedy necháváte viset mnoho "částečně iterovaných" kurzorů, vzniká obecná režie, pokud jde o aktivní připojení a využití paměti.

Pokud ve skutečnosti vždy opakujete „všechny“ výsledky (a to zahrnuje „limit“, což je „modifikátor kurzoru“), kurzor se zavře a vše je v pořádku.

Obecné použití bude takové, že ve skutečnosti vyčerpáte/vyčerpáte kurzor tím, že projdete všechny výsledky. Proto není výslovně potřeba ničit.



  1. Pokud je datum v mongodb ve formátu řetězce, použijte operátory $gte a <e mongo

  2. Testování jednotek s MongoDB

  3. Jaký je rozdíl mezi findAndModify a update v MongoDB?

  4. Lombok - java.lang.StackOverflowError:null na metodě toString