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

Spusťte redukci mapy pro všechny klíče ve sbírkách - mongodb

Použití mapy/redukce pro tento jednoduchý úkol je trochu jako použití (poměrně pomalého) perlíku k rozlousknutí ořechu. rámec agregace byl v podstatě vynalezen pro tento druh jednoduché agregace (a může pro vás udělat mnohem víc!):

db.order.aggregate([
    { "$group":{ "_id":"$customer", "orders":{ "$sum": 1 }}},
    { "$out": "order_total"}
])

V závislosti na vašem případu použití můžete dokonce vynechat $out fázi a přímo konzumovat výsledky.

> db.orders.aggregate([{ "$group":{ "_id":"$customer", "orders":{ "$sum": 1 }}}])
{ "_id" : "b", "orders" : 2 }
{ "_id" : "a", "orders" : 3 }

Všimněte si, že u velmi velkých sbírek to s největší pravděpodobností není vhodné, protože to chvíli trvá (ale stále by to mělo být rychlejší než operace mapování/zmenšení).

Pro zjištění počtu objednávek jednoho zákazníka můžete použít jednoduchý dotaz a použít cursor.count() metoda:

> db.orders.find({ "customer": "a" }).count()
3



  1. Jak klonovat/zkopírovat databázi v Azure Cosmos DB

  2. Dockeru se nedaří spustit koleje

  3. java - představení MongoDB + Solr

  4. Jak získat velikost jednoho dokumentu v Mongodb?