【发布时间】:2015-05-19 22:58:52
【问题描述】:
我正在使用 MEAN 堆栈来构建 Web 应用程序。我正在尝试根据控制器中的参数通过 ObjectId 过滤来自服务器的数据。我的参数适用于键值,例如按名称过滤,但按 ObjectID 过滤不起作用。我将 MongoJS 与 Mongojs.ObjectID 一起使用。
Controller.js:
var refresh = function() {
$http.get('/collection', {params:{"_id":"111100000111"}}).success(function(response) {
console.log("Success");
$scope.collection = response;
});
};
refresh();
Server.js:
app.get('/collection', function(req,res){
if(req.query.id){
db.users.find({_id: mongojs.ObjectId(req.query.id)},function (err, docs) { console.log(docs); res.json(docs); });
}
else{
db.users.find(function (err, docs) { console.log(docs); res.json(docs); });
}
});
因为服务器端函数作为 if-else 运行,“if”在这种情况下失败,它转到“else”,这会带回所有文档。我已经尝试了几乎所有在“id”之前添加“_”以及从“id”或“_id”中添加/删除引号的组合。不同的组合带回了“null”,一个空数组,或者进入了“else”语句。
【问题讨论】:
标签: javascript angularjs node.js express mean-stack