无法从 JSON 对象中删除字段 - Node JS

Posted

技术标签:

【中文标题】无法从 JSON 对象中删除字段 - Node JS【英文标题】:Cant remove field from JSON object - Node JS 【发布时间】:2018-09-28 11:38:47 【问题描述】:

我有一条生成 PDF 的路线。

featureRoutes.route('/report/').get(function (req, res) 
Feature.find(function (err,features)
if(err)
 console.log(err);

else 
pdf.create(features.toString()).toStream(function (err, stream) 
  if (err) return res.send(err);
  res.type('pdf');
  stream.pipe(res);
);

);
);

pdf 的内容是一个 JSON 对象,看起来像这样。

    [  _id: 5ad5ddddcd054b2b5b20143c,
name: 'Project sidebar',
description: '<p>The project sidebar that we previewed in&nbsp;<a href="https://confluence.atlassian.com/jira/jira-6-4-release-notes-678561444.html">JIRA 6.4</a>&nbsp;is here to stay. We built this new navigation experience to make it easier for you to find what you need in your projects. It&#39;s even better, if you are using JIRA Agile: your backlog, sprints, and reports are now just a click away. If you&#39;ve used the sidebar with JIRA Agile before, you&#39;ll notice that cross-project boards, which include multiple projects, now have a project sidebar as well &mdash;&nbsp;albeit a simpler version.</p>\n',
__v: 0 

我需要剥离 _id 字段和 __V 字段。我试试这个:

    delete features._id

    delete features.__V

但是生成的PDF还是包含id和__V字段

如何正确删除节点中的字段?

【问题讨论】:

javascript delete object property not working的可能重复 features 一个数组或json。从代码看起来它是数组中的json?可以是delete features[0]._id @Macintosh_89 - 它不会删除任何项目,我使用的是节点 8.11 回答:***.com/q/51982694/2034750 【参考方案1】:

我在 Feature.find 的末尾用 .select 限制了字段

  .select("-__v -_id");

【讨论】:

create 时你怎么能做到? 请参考***.com/q/51982694/2034750,可能会有帮助。

以上是关于无法从 JSON 对象中删除字段 - Node JS的主要内容,如果未能解决你的问题,请参考以下文章

从 django 序列化对象中删除 pk 字段

如何通过使用 node.js 从实时 json 数据中提取特定字段来创建新的单个 json 对象

node-删除对象中指定属性失效问题-JSON.parse实例化

Node.js、Express、jQuery.param() - 从 JSON 中删除引号

Dataflow 中的 BigQuery 无法从 Cloud Storage 加载数据:为非记录字段指定了 JSON 对象

使用jq从JSON对象中删除键:值