我正在使用mongoose向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);
});
}
答案 0 :(得分:1)
您需要使用query.select,如下所示:
@objc
我无法键入太多内容,因为我正在使用掌上电脑进行响应。
希望这有帮助!
答案 1 :(得分:1)
将查询查询的第二个参数设置为“_id”,以仅检索对象的_id。
Step.find(query).select({ "_id": 1}).then(....);
这将返回如下数据:
Step.find(req.query, '_id', function(err, result) {
如果你想自己获得一个Step ID数组,请使用javascript map函数,如下所示
[{_id: 123}, {_id: 234}]
会给你一个像这样的数组:
result = result.map(function(doc) {
return doc._id;
});