loggingMongoose创build对象的值时,值属性更改不会被反映

我使用forEach方法遍历对象中的项目。

function scrapeRssFeedData(rssFeeds, cb){ rssFeeds.forEach(function(rssFeed){ rssFeed.property = 'value'; console.log(rssFeed.property); console.log(rssFeed); }); } 

为rssFeed.propertylogging的值正确地为“值”。

但是,当rssFeed对象本身被logging时,该属性不可见。

原始的rssFeeds对象是使用Mongoose模型构build的。

为什么在logging对象时不能看到属性? 我能做些什么来解决它?

更新:即使这个代码不起作用:

 function scrapeRssFeedData(rssFeeds, cb){ rssFeeds[1]['property'] = 'value'; console.log(rssFeeds[1]); } 

这个例子不起作用的事实使我相信,几乎可以肯定这是与由Mongoose构build的对象有关的。 我想用Mongoose来完成,不过在程序的这一点上,并且想要开始为这个对象添加值。

正如我越来越怀疑,这是由于它是一个Mongoose文档的实例,而不是一个正常的JavaScript对象。

我能在这里find解决scheme:

你如何将一个Mongoose文档变成一个普通的对象?

并将.lean()添加到查询链中,即:

 function getRssFeeds(status, cb){ if(status == 'on'){ RSSFeed .find({}) .populate('endpoints') .lean() // <-- Needed to be added .exec(function (err, feeds) { cb(null, feeds); }); } else if(status == 'off'){ cb({'status' : 'functionality', 'message': 'app is turned off'}) } }