sql >> Database teknologi >  >> NoSQL >> MongoDB

Få antallet af felter i hvert dokument gennem forespørgsel ved hjælp af MongoDB java-driver

Fra din java-kode læste jeg

som

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

Med denne antagelse kan du kort-reducere det som følger:

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} virker til små datasæt, når resultatet passer ind i 16 Mb grænse . For større svar skal du output til en samling, som du kan forespørge og gentage som normalt.




  1. kan ikke opdatere et dokument via 'findById' og gemme() med løfte

  2. Mongoose returnerer altid et tomt array NodeJS

  3. Sådan bruger du kryptering til at beskytte dine MongoDB-data

  4. Sådan integreres Pyramid 1.1 og Mongo DB - så få linjer som muligt