我正在尝试在访问我的API时使用mongoose在mongodb上运行查询,但是这不起作用。它总是给我一个错误。
如果我使用 db.my_collection.find({ingredient_name:[“olive”,“oil”]})在mongo客户端上搜索,那么它的效果非常好。
我的代码如下所示:
exports.show = function(req, res) {
var tmp = req.params.id.split(",");
var search = JSON.stringify(tmp);
console.log("searching for "+search);
ComplementaryFood.find({
ingredient_name : { $in : search }
} ,function (err, complementary_food) {
if(err) { return handleError(res, err); }
if(!complementary_food) { return res.send(404); }
return res.json(complementary_food);
});
};
搜索是JSON,如[“橄榄”,“油”]或[“啤酒”]等。
请帮助,我已经阅读了moongose文档,尝试了很多不同的东西而没有工作......
顺便说一句。我的项目建立在yoman
的angular-fullstack-generator之上答案 0 :(得分:2)
$in
采用数组值,而不是字符串。所以不要将tmp
字符串化,只需直接使用它:
ComplementaryFood.find({
ingredient_name : { $in : tmp }
}, ...