为什么不能将数组作为成员添加到我的对象中

对于我的快速/ mongo / mongoose路由器我试图附加一个对象到另一个对象,然后再发送它。 不幸的是,它永远不会 我在哪里弄错了?

值得注意的是,response_study是一组对象,如果这很重要的话。

另外,response_study不为null。

apiRouter.route('/compounds/:_id') .get(function(req, res) { Compound.findById(req.params._id, function(err, compound) { if (err) res.send(err); Study.find({compound_id: compound._id}, function( err, response_study){ if (err) res.send(err); compound["studies"] = response_study; console.log(compound); //logs compound without studies parameter res.json(compound); }); }); }) 

看起来你正在使用mongoose? 如果是这样,他们不返回普通的对象,而是MongooseDocument对象。 您需要将MongooseDocument转换为普通对象,然后才能对其进行更改,否则您的更改将不起作用:

 var response = compound.toObject(); response.studies = response_study; res.json(response); 

http://mongoosejs.com/docs/api.html#document_Document-toObject

我用mongoose已经有一段时间了,所以可能是用toJSON来代替