如何在不丢失现有文件的情况下向Cloudant中的文档添加新字段

我试图添加新的领域,我有一个文件,我在Cloudant基于用户input,但是当我做一个插入我覆盖文件,并丢失现有的领域,除非我发送insert

例如,我有一个命令对Cloudant执行查询以接收文档,并返回_id, _rev, name and special_id字段。 这个文件被传递到一个新的命令,通过插入(和是的,我正在使用_rev )附加一个字段,如favorite_food

现在,用户input另一个命令,如“添加学校”。 该过程重新开始,我查询Cloudant,并且我已经返回了_id, _rev, name, and special_id 。 我附加一个school领域的文件,做一个insert ,但后来我检查文件和favorite_food已经没有了。

有一个参数,我可以传递给Cloudant insert函数,告诉它实际执行更新,而不是覆盖?

仅供参考,它在节点上运行并使用节点云计算包。 在文档中我找不到有关params的更多细节,典型的插入看起来像:

 cloudantDb.insert(doc, params, function(error, response) { if (!error) { console.log("success", response); resolve(response); } else { console.log("error", error); reject(error); } }); 

没有看到你的代码,很难说肯定。 没有魔法参数。 在Cloudant中,创build,更新和删除没有任何区别 – 它们本质上都是创build一个修订。 你不能“修补”JSON文档,你需要提供整个事情,每次。 这是一个例子:

 # Create a new document curl -XPOST -H 'content-type:application/json' \ 'https://skruger.cloudant.com/testdb' -d '{"name":"stefan"}' {"ok":true,"id":"5309a1784a9cc45d498e8170af7dcc3c","rev":"1-a0f0b27e1069f45cc121dfe5dc08f280"} # Add a field curl -XPUT -H 'content-type:application/json' \ 'https://skruger.cloudant.com/testdb/5309a1784a9cc45d498e8170af7dcc3c' \ -d '{"_id":"5309a1784a9cc45d498e8170af7dcc3c", "_rev":"1-a0f0b27e1069f45cc121dfe5dc08f280", "name":"stefan", "fish":"pike pearch"}' {"ok":true,"id":"5309a1784a9cc45d498e8170af7dcc3c","rev":"2-7c3ea3603c3e16962c7b33f50becc771"} # Fetch it again curl 'https://skruger.cloudant.com/testdb/5309a1784a9cc45d498e8170af7dcc3c' {"_id":"5309a1784a9cc45d498e8170af7dcc3c","_rev":"2-7c3ea3603c3e16962c7b33f50becc771","name":"stefan","fish":"pike pearch"} # And another new field curl -XPUT -H 'content-type:application/json' \ 'https://skruger.cloudant.com/testdb/5309a1784a9cc45d498e8170af7dcc3c' \ -d '{"_id":"5309a1784a9cc45d498e8170af7dcc3c", "_rev":"2-7c3ea3603c3e16962c7b33f50becc771", "name":"stefan", "fish":"pike pearch", "sport":"tennis"}' {"ok":true,"id":"5309a1784a9cc45d498e8170af7dcc3c","rev":"3-e0f4d1ab1a47b046ea90a0fbbf34ff36"} # Fetch again curl 'https://skruger.cloudant.com/testdb/5309a1784a9cc45d498e8170af7dcc3c' {"_id":"5309a1784a9cc45d498e8170af7dcc3c","_rev":"3-e0f4d1ab1a47b046ea90a0fbbf34ff36","name":"stefan","fish":"pike pearch","sport":"tennis"}