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

Počítejte pole v kolekci MongoDB

Iterujte přes celou kolekci a najděte celý počet polí, která existují

Nyní můžete použít agregační operátor $objectToArray (SERVER-23310) k přeměně klíčů na hodnoty a jejich počítání. Tento operátor je dostupný v MongoDB v3.4.4+

Například:

db.collection.aggregate([
         {"$project":{"numFields":{"$size":{"$objectToArray":"$$ROOT"}}}}, 
         {"$group":{"_id":null, "fields":{"$sum":"$numFields"}, "docs":{"$sum":1}}}, 
         {"$project":{"total":{"$subtract":["$fields", "$docs"]}, _id:0}}
])

První fáze $project je přeměnit všechny klíče na pole pro počítání polí. Druhá fáze $group je sečíst počet klíčů/polí ve sbírce, také počet zpracovaných dokumentů. Třetí fáze $project odečítá celkový počet polí od celkového počtu dokumentů (protože nechcete počítat pro _id ).

Můžete snadno přidat $ avg pro započítání do průměru v poslední fázi.



  1. O kolik je Redis rychlejší než mongoDB?

  2. MongoDB:spočítejte počet položek v poli

  3. SQL RPAD()

  4. Automatické zvýšení sekvence v mongodb pomocí Java