sql >> Databasteknik >  >> NoSQL >> MongoDB

Få antalet fält i varje dokument genom fråga med MongoDB java-drivrutin

Från din java-kod läste jag

som

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

Med detta antagande kan du map-reduce det enligt följande:

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} fungerar för små datamängder, när resultatet passar in i 16 Mb-gränsen . För större svar måste du output till en samling, som du kan fråga och iterera som vanligt.




  1. ansluter till Mongodb inuti en dockare med mongodb kompass GUI

  2. Hitta antalet maximala på varandra följande poster baserat på ett fält i Mongodb Query

  3. Att veta när resque-arbetaren hade avslutat jobbet

  4. Introduktion till distribuerad cache i Hadoop