Javascript CouchDB文档映射修改

Javascript CouchDB文档映射修改,javascript,couchdb,Javascript,Couchdb,我是CouchDd的新手,所以我可能在文档中遗漏了一些东西 我想创建一个映射函数,该函数将放置在doc的一个成员上。注意:我不想实际更改存储的文档,只想更改返回的结果 我已经创建了这张地图 function(doc) { for(i = 0; i < doc.Videos.length; i++) { delete doc.Videos[i].VideoFrames; } emit(doc.DeviceId, doc); } 编辑 我误解了

我是CouchDd的新手,所以我可能在文档中遗漏了一些东西

我想创建一个映射函数,该函数将放置在doc的一个成员上。注意:我不想实际更改存储的文档,只想更改返回的结果

我已经创建了这张地图

function(doc) {
    for(i = 0; i < doc.Videos.length; i++)
    {
        delete doc.Videos[i].VideoFrames;
    }
    emit(doc.DeviceId, doc);
}
编辑 我误解了这个问题。op似乎只是想从最终结果中删除视频帧。下面是你如何做到这一点的

  function(doc) {
    var newDoc = doc;
    for(i = 0; i < newDoc.Videos.length; i++)
    {
        delete newDoc.Videos[i].VideoFrames;
    }
    emit(doc.DeviceId, newDoc);
}
功能(doc){
var newDoc=doc;
对于(i=0;i
CouchDB密封
doc
对象,防止对其进行任何修改,因为在视图索引更新时,它被认为是来自同一设计文档的所有映射函数。如果你想修改它并发出结果,你应该首先制作他的副本并修改该副本,而不是原始的
doc
对象。

我不想更新实际的文档,我只是不想返回带有映射结果的视频帧。
  function(doc) {
    var newDoc = doc;
    for(i = 0; i < newDoc.Videos.length; i++)
    {
        delete newDoc.Videos[i].VideoFrames;
    }
    emit(doc.DeviceId, newDoc);
}