MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Uzyskaj liczbę pól w każdym dokumencie za pomocą zapytania za pomocą sterownika java MongoDB

Z twojego kodu Java, który przeczytałem

jako

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

Przy takim założeniu możesz map-reduce to w następujący sposób:

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} działa dla małych zestawów danych, gdy wynik mieści się w limit 16 MB . W przypadku większych odpowiedzi musisz output do kolekcji, do której możesz normalnie wykonywać zapytania i iterować.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Dlaczego błąd mongod jest martwy, ale podsys jest zablokowany i nie ma wystarczającej ilości wolnego miejsca na pliki dziennika w systemie Linux?

  2. Kontener dokera MongoDB Nie udało się odłączyć pliku gniazda

  3. Wyświetlaj i udostępniaj pliki z GridFS za pomocą Flask

  4. Jak wstawić nowy obiekt bez usuwania poprzedniego

  5. Integracja ClusterControl z SNMP:część druga