J'essaie d'ajouter (alias push to existing array) dans le document couchDB. Tous les commentaires sont grandement appréciés.Modification/mise à jour des objets imbriqués dans les documents CouchDB (node.js)
J'ai un document intitulé "enquête " dans ma base de données appelée "database1". J'ai "enquêtes" comme un ensemble de tableaux qui se compose d'objets qui a des informations sur chaque enquête.
Mon objectif est de mettre à jour mon document "survey". Ne pas remplacer mon tableau, mais ajouter un nouvel objet au tableau existant. J'ai utilisé "nano-couchdb" et "node-couchdb", mais n'a pas pu trouver un moyen de contourner le problème. J'ai été en mesure de mettre à jour mes "enquêtes", mais il remplacerait le tout, ne gardant pas les objets existants dans le tableau.
1) En utilisant Nano-CouchDB:
db.insert({ _id, name }, "survey", function (error, resp) {
if(!error) { console.log("it worked")
} else {
console.log("sad panda")}
})
2) En utilisant CouchDB-noeud:
couch.update("database1", {
_id: "survey",
_rev:"2-29b3a6b2c3a032ed7d02261d9913737f",
surveys: { _id: name name: name }
)
Ceux-ci fonctionnent bien avec l'ajout de nouveaux documents à une base de données, mais ne fonctionne pas avec l'ajout des choses à des documents existants.
{
"_id": "survey",
"_rev": "2-29b3a6b2c3a032ed7d02261d9913737f",
"surveys": [
{
"_id": "1",
"name": "Chris"
},
{
"_id": "2",
"name": "Bob"
},
{
"_id": "1",
"name": "Nick"
}
]
}
Je veux que ma demande de travailler comme il le ferait pour
"surveys.push({_id:"4",name:"harris"})
chaque fois que de nouvelles données vient de ce document.