我正在尝试做的事情:
- 我想将数据(id,数据)添加到 db。这样做时,我想检查 id 是否已经存在,如果存在,则附加到现有数据。否则添加一个新的 (id, data) 条目。
例如:这可能是多个测试中的学生 ID 和成绩的数据库。如果 db 中已经存在 id,我只想附加到 db 中已经存在的测试分数,否则创建一个新条目:(id,grades)
- 我已经设置了一个更新处理函数来执行此操作。我了解,couchdb insert 默认情况下不执行上述操作。现在 - 我如何检查数据库中的那个 id,如果是,决定是添加新条目还是追加。我知道有 db.get()。但是,我认为由于更新处理程序函数已经是 db itelf 的一部分,因此可能有一种更有效的方法。
我在 couchdb wiki 中看到了这个示例代码:
function(doc, req){
if (!doc){
if ('id' in req && req['id']){
// create new document
return [req, 'New Document'];
}
// change nothing in database
return [null, 'Incorrect data format'];
}
doc[id] = req;
return [doc, 'Edited World!'];
}
这个例子中有一些不清楚的说明:我们从哪里得到 id?在添加到 db 时,通常不会显式传入 id。
这是否意味着,我们需要显式传递一个名为“_id”的字段?