2016-02-26 48 views
0

我正在使用貓鼬向mongoDB發送查詢。該集合被命名爲Step。我想這個查詢的結果是一個_id值的數組,每步一個。目前我正在全部獲取所有的步驟對象,因爲在這種情況下req.query沒有被定義。什麼是貓鼬查詢的語法,我只想要一個屬性的值?

服務:

this.getSteps = function() { 
    return $http({ 
     method: 'GET', 
     url: '/api/step' 
    }) 
    .then(function(response) { 
     return response.data; 
    }); 
}; 

控制器:

readStep: function (req, res) { 
    Step.find(req.query, function(err, result) { 
     if (err) { 
      res.status(500).send(err); 
     } 
     res.status(200).send(result); 
    }); 
} 

回答

1

將find查詢的第二個參數設置爲'_id'以僅檢索對象的_id。

Step.find(req.query, '_id', function(err, result) { 

這將返回的數據是這樣的:

[{_id: 123}, {_id: 234}] 

如果你想要得到的步驟ID數組自己,使用像這樣

result = result.map(function(doc) { 
    return doc._id; 
}); 

的JavaScript地圖功能這會給你一個這樣的陣列:

[123, 234] 
1

你需要使用query.select,類似如下所示:

Step.find(query).select({ "_id": 1}).then(....); 

我不能打字很多,因爲我正在通過手持設備進行響應。

希望得到這個幫助!