在循环中扩展结构/文档

时间:2017-03-18 08:11:57

标签: javascript

您是否知道是否有简单的方法可以在循环中向文档中添加更多数据? 下面的文件介绍了我的理想:

{
  _id: 'mydoc',
  _attachments: {
    'myattachment1.txt': {
      content_type: 'text/plain',
      data: blob1
    },
    'myattachment2.txt': {
      content_type: 'text/plain',
      data: blob2
    },
    'myattachment3.txt': {
      content_type: 'text/plain',
      data: blob3
    },
  }
}

我想在循环中扩展部分“_attachments:”,以便我能够添加新数据。例如,可以循环运行3次添加每个附件。如何轻松实现这一目标?

----------- ---------------已编辑 预期结果:

{
  _id: 'mydoc',
  _attachments: {
    'myattachment1.txt': {
      content_type: 'text/plain',
      data: blob1
    },
    'myattachment2.txt': {
      content_type: 'text/plain',
      data: blob2
    },
    'myattachment3.txt': {
      content_type: 'text/plain',
      data: blob3
    },
    'myattachment4.txt': {
      content_type: 'text/plain',
      data: blob4
    },
  }
}

2 个答案:

答案 0 :(得分:1)

要在您拥有的结构中插入新字段:



const data = {
  _id: 'mydoc',
  _attachments: {
    'myattachment1.txt': {
      content_type: 'text/plain',
      data: 'blob1'
    },
    'myattachment2.txt': {
      content_type: 'text/plain',
      data: 'blob2'
    },
    'myattachment3.txt': {
      content_type: 'text/plain',
      data: 'blob3'
    },
  }
}

Object
  .keys(data._attachments)
  .forEach(key => {
    data._attachments[key].myNewField = 'foo';
  });
  
console.log(data);




至少我认为这就是你所追求的,正如评论中所说,你可能正在使用mongo。

答案 1 :(得分:0)

最后这可行。

似乎我需要更熟悉语言本身。

    varNewAttachment = "XYZ.txt";
    varNewAttachmentValue = {
      content_type: 'text/plain',
      data: 'blob1'
    };

data._attachments[varNewAttachment] = varNewAttachmentValue ;