Ich versuche, einen generischen Dokument Update-Handler zu erstellen.CouchDB Dokument Update Handler: Javascript
Ich verwende:
function(doc, req) {var field = req.query.field; var value =
req.query.value; var message = 'set '+field+' to '+value; doc[field] =
value; return [doc, message]; }
Dies funktioniert ok mit einfachen json aber nicht mit einem verschachtelten Objekt wie
"abc":{"ax":"one", "by":"two" ...}
mein curl Befehl lautet:
curl -X PUT 'http://127.0.0.1:5984/db/_design/updatehandler/_update/inplace/id?field=abc.ax&value=three'
Das Ergebnis ist ein neues Feld erstellt und die vorhandene abc: {ax: one} bleibt unberührt.
Mit einem einfacheren Beispiel:
wenn ich: "xyz":"five"
curl -X PUT 'http://127.0.0.1:5984/db/_design/updatehandler/_update/inplace/id?field=xyz&value=ten'
... richtig funktioniert.
Ich habe noch nicht den generischen Prozess auf "pqr":[s, t, u]
versucht, aber ich denke dies kann eine andere Design-Modifikation erfordern.
Idealerweise will man etwas, das zumindest in den oben genannten drei Fällen funktioniert, solange es nicht zu komplex ist, um es nicht zu belasten. der Aufwand.
Könnte jemand bitte hier helfen oder verweisen Sie mich bitte auf einige Javascript-Beispiele.
Vielen Dank.
John
Danke @Alexis. In diesem Fall haben Sie vorgeschlagen, wie würde der Befehl curl POST aussehen? – jlb333333
Siehe [diese Dokumentation] (http://docs.couchdb.org/en/2.1.0/api/ddoc/render.html#post--db-_design-ddoc-_update-func) –
Hallo @Alexis. Danke für das. Tut mir leid, dich zu ärgern. Ich bekomme den folgenden Fehler beim Ausführen des Updates: '{" error ":" render_error "," Grund ":" Funktion ausgelöst Fehler: (new TypeError (\ "Object.assign ist keine Funktion \" 'Zeigt dies nichts I Tut mir leid, wieder zu tun. – jlb333333