2015-08-29 81 views
1

我想在访问我的API时运行与mongoose mongodb上的查询,但是这不起作用。它总是给我一个错误。

如果我在mongo客户端上搜索db.my_collection.find({composition_name:[“olive”,“oil”]}),那么它可以很好地工作。

我的代码看起来像下面:

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文档,尝试了很多不同的东西,但都没有工作...

btw。我的项目建立在yoman的角度全堆叠发生器上

回答

2

$in获取数组值,而不是字符串。所以不要串起tmp,直接使用它:

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

非常感谢!这工作! – RaptoX