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

Získejte počet polí v každém dokumentu pomocí dotazu pomocí java ovladače MongoDB

Z vašeho kódu java jsem vyčetl

jako

project only type[1..120] fields and number of such fields in the document

S tímto předpokladem můžete map-reduce takto:

db.testcol.mapReduce(
function(){
    value = {count:0};
    for (i = 1; i <= 120; i++) {
        key = "type" + i
        if (this.hasOwnProperty(key)) {
            value[key] = this[key];
            value.count++
       }
    }
    if (value.count > 0) {
        emit(this._id, value);
    }
},
function(){
    //nothing to reduce
},
{
    out:{inline:true}
});

out:{inline:true} funguje pro malé datové sady, když se výsledek vejde do 16Mb limitu . Pro větší odpovědi je třeba output do kolekce, kterou můžete dotazovat a iterovat jako obvykle.




  1. Spojujte a formátujte pole objektů v Pythonu

  2. Aktualizace pole Mongo nebo vložení jednoho dotazu

  3. Implementace/přepsání formátování MongoRepository Keep HATEOAS

  4. Rozdíly mezi com.mongodb.client.MongoClient a com.mongodb.MongoClient