sql >> Database >  >> NoSQL >> MongoDB

Krijg het aantal velden in elk document door middel van een query met behulp van MongoDB Java-stuurprogramma

Uit je Java-code lees ik

als

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

Met deze veronderstelling kun je map-reduce het als volgt:

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} werkt voor kleine datasets, wanneer het resultaat past in 16Mb limiet . Voor grotere antwoorden moet je output naar een verzameling, die u zoals gewoonlijk kunt opvragen en herhalen.




  1. 9 nieuwe MongoDB-functies - Moet leren beheersen in MongoDB

  2. Hoe kan ik met mongodb een aantal records per specifiek veld selecteren?

  3. MongoDB Aggregation Framework - Hoe matchen op datumbereik, groeperen op dagen en gemiddeld rendement voor elke dag?

  4. $match in $lookup-resultaat