Javascript 记录Mongoose创建对象的值时未反映值属性更改

Javascript 记录Mongoose创建对象的值时未反映值属性更改,javascript,node.js,mongoose,Javascript,Node.js,Mongoose,我正在使用forEach方法遍历对象中的项 function scrapeRssFeedData(rssFeeds, cb){ rssFeeds.forEach(function(rssFeed){ rssFeed.property = 'value'; console.log(rssFeed.property); console.log(rssFeed); }); } 为rssFeed.property记录的值正确为“value” 但是,当记录rssFe

我正在使用forEach方法遍历对象中的项

function scrapeRssFeedData(rssFeeds, cb){

  rssFeeds.forEach(function(rssFeed){

    rssFeed.property = 'value';
    console.log(rssFeed.property);
    console.log(rssFeed);

  });
}
为rssFeed.property记录的值正确为“value”

但是,当记录rssFeed对象本身时,该属性不可见

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

为什么在记录对象时看不到属性?我能做些什么来修复它

更新:即使此代码也不起作用:

function scrapeRssFeedData(rssFeeds, cb){

  rssFeeds[1]['property'] = 'value';

  console.log(rssFeeds[1]);

}

这个例子不起作用的事实让我相信,几乎可以肯定,这与猫鼬构建的对象有关。我希望在程序的这一点上完成Mongoose,并希望开始向该对象添加值。

我开始怀疑,这是因为它是Mongoose文档的一个实例,而不仅仅是一个普通的Javascript对象

我在这里找到了解决方案:

并将.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'}) 
  }
}
函数getRssFeeds(状态,cb){ 如果(状态=='on'){ RSSFeed .find({}) .populate('端点')
.lean()//rssFeed不是rssFeeds的字符串键吗?console.log(typeof(rssFeed))的值是“object”。