2016-05-17 8 views
0

Warum ist offset: 1?Antwort von db ist Offset, nicht alle Ergebnisse mit Kartenfunktion

Ich erwarte 2 rows in der Antwort von Cloudant, wie total_rows angibt, aber sein Offset aus irgendeinem Grund, so dass nur 1 Zeile als Antwort vorhanden ist.

Console Ausgabe:

{ total_rows: 2, 
    offset: 1, 
    rows: 
    [ { id: '1e0a2d30d18d95b9bcc05d92c883d496', 
     key: '1e0a2d30d18d95b9bcc05d92c883d496', 
     value: [Object] } ] } 

Funktion aufrufen, Griff Antwort:

viewImpl('test', 'something').then(function(result) { 

    result.rows.forEach(function(doc) { 
    console.log(doc.value); 
    }); 

    res.status(200).send('done'); 
    } 
}).catch(someFunc()); 

Funktion def:

App.prototype.viewImpl = function(designName, viewName) { 
    return new Promise(function(fulfill, reject) { 
    _this.db.view(designName, viewName, { keys: ["1e0a2d30d18d95b9bcc05d92c883d496","1e0ad30d18d95b9bcc05d92c883e272"] }, function(err, result) { 
     if (err) { 
     reject(err); 
     } else { 
     fulfill(result); 
     } 
    }); 
    }); 
}; 

Ansicht definiert in Cloudant:

function(doc) { 
    emit(doc._id, { _id: doc._id, _rev: doc._rev, some_field: doc.some_field }); 
} 

Antwort

1

an den an die Funktion Werfen Sie einen Blick view() versehen Schlüssel:

1e0a2d30d18d95b9bcc05d92c883d496 
1e0ad30d18d95b9bcc05d92c883e272 

Der zweite Schlüssel ist ein Zeichen kürzer - es ist nur 31 Zeichen statt 32 ist Ich denke, man verpasst nur das letzte Zeichen, wenn Kopie Einfügen es aus der Dokument-ID.

Entfernen Sie die Schlüsselparameter, um alle Zeilen anzuzeigen. Überprüfen Sie dann, welcher der richtige Schlüssel für die zweite Zeile ist, und aktualisieren Sie Ihren Code.