mongoose model $查询无法正常工作

时间:2015-08-29 16:02:19

标签: node.js mongodb mongoose

我正在尝试在访问我的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之上

1 个答案:

答案 0 :(得分:2)

$in采用数组值,而不是字符串。所以不要将tmp字符串化,只需直接使用它:

ComplementaryFood.find({
    ingredient_name : { $in : tmp }
}, ...