Im Kapitel Collation anzeigen der offiziellen Dokumentation der CouchDB unter dem ersten Beispiel (http://docs.couchdb.org/en/1.6.1/couchapp/views/collation.html#views-collation) wird empfohlen, das Dokument selbst nicht in der Ansicht auszugeben. Stattdessen wird empfohlen, die Textkörper der Dokumente beizufügen Fordern Sie die Ansicht an, indem Sie die Ansicht mit ?include_docs=true
anfordern.Warum sollte die CouchDB-Dokumentation, die Dokumente vorschlägt, nicht in der Ansicht ausgegeben werden?
Wenn ich verstehe es richtig, statt:
emit(doc._id, doc);
und Ergebnisse in folgendem Format erhalten:
{"id":"1","key":"1","value":{"_id": "1", "someProp": "someVal"}},
vorgeschlagen wird, aussendet mit Nullwerten zu senden:
emit(doc._id, null)
und dann beim Abfragen meiner Ansicht mit dem Parameter include_docs Ergebnisse in der folgenden Form erhalten an:
{
"id": "1",
"key": "1",
"value": null,
"doc": {
"_id": "1",
"_rev": "1-0eee81fecb5aa4f51e285c621271ff02",
"someProp": "someVal"
}
Wenn es wird vorgeschlagen, als ich die Leistung, das wäre besser vermuten würde, aber leider ist die Dokumentation nicht ausarbeiten, warum und andere Beispiele Dokumente normalerweise als Wert im emit emittieren. Könnte jemand mehr Licht auf dieses Thema werfen?
Dank Dominic, so zu rekapitulieren emittieren (doc._id, doc) ist schneller beim Abfragen, aber mehr Speicherplatz wird zum Caching/Indizierung vs emit (doc._id, null) mit include_docs = True möglicherweise langsamer als die Engine verwendet muss aufgrund fehlender zwischengespeicherter/indizierter Dokumente eine Abfrage durchführen, aber wir sparen Speicherplatz. –
@Dominic Barnes Können Sie bestätigen, was Sigman.pl schrieb in seinem Kommentar bitte? – Magiranu
@Magiranu, das klingt richtig für mich –