2015-06-17 95 views
-1

我有一个非常具体的问题。检索一个子数组(MEAN堆栈)

所以我用下面(与快递的NodeJS猫鼬调用)查询我的数据库:

UserProfileModel.find({'username': req.query.username},'progressmanual' ,function (err, entries) { 
      console.log("entries from the server:"+entries); 
      res.json(entries); 

     }); 

而这个查询产生以下结果:

{ _id: 5580edc16f5d5c3411f703c8, 
progressmanual:[ { Date: Tue Jun 16 2015 23:47:36 GMT-0400 (Eastern Daylight Time), cups: 5, miles: 5, steps: 6, duration: 6, _id: 5580edd86f5d5c3411f703c9 }, 
{ Date: Tue Jun 16 2015 23:47:41 GMT-0400 (Eastern Daylight Time), cups: 754, miles: 57457, steps: 457547, duration: 54745745, _id: 5580eddd6f5d5c3411f703ca }, 
{ Date: Tue Jun 16 2015 23:47:45 GMT-0400 (Eastern Daylight Time), cups: 547457, miles: 536346, steps: 4436346, duration: 466, _id: 5580ede16f5d5c3411f703cb }, 
{ Date: Tue Jun 16 2015 23:47:50 GMT-0400 (Eastern Daylight Time), cups: 436, miles: 6436, steps: 4464346, duration: 446, _id: 5580ede66f5d5c3411f703cc }, 
{ Date: Tue Jun 16 2015 23:49:36 GMT-0400 (Eastern Daylight Time), cups: 5, miles: 5, steps: 6, duration: 6, _id: 5580ee506f5d5c3411f703cd } ], personalgoals: {} } 

在我前端我试图显示从progressmanual 条目,所以当我试图做res.json(entries.progressmanual)它会导致null。你知道如何提取progressmanual对象的数组吗?

另外,你知道为什么查询结果包含额外的“列”,我没有要求(除了progressmanual之外的东西)?

+0

*另外,你知道为什么查询结果包含额外的“列”*你没有告诉它**不**返回这些列。 –

+0

在回调之前,我指定了'progressmanual',它应该给我这个。 (至少这就是我所假设的) – 372

+1

'-_id'会隐藏身份证,' - personalonalgoals'会隐藏个人目标。至于你的主要问题,它看起来会对我有用,但我认为你错过了'entries'是一组条目,而不仅仅是一个条目。您复制到问题中的控制台输出似乎只显示一个条目,但我敢打赌它实际上是用'[]'包装的。你不应该使用findOne吗? –

回答

1

由于凯文乙从意见,我想通了这个问题:改变find()findOne让我获得entries.progressmanual。所以它看起来像find()总是返回数组所以find()我应该使用entries[0].progressmanual