【问题标题】:mongoose model $in query not workingmongoose 模型 $in 查询不起作用
【发布时间】:2015-08-30 00:20:29
【问题描述】:

我试图在访问我的 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);
  });
};

search 是 JSON,如 ["olive","oil"] 或 ["beer"] 等。

请帮忙,我已经阅读了 moongose 文档,尝试了很多不同的方法,但都没有奏效......

顺便说一句。我的项目是基于 yoman 的 angular-fullstack-generator

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    $in 采用数组值,而不是字符串。所以不要对tmp进行字符串化,直接使用即可:

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

    【讨论】:

      猜你喜欢
      • 2019-04-29
      • 2013-09-18
      • 2016-06-07
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-25
      • 1970-01-01
      相关资源
      最近更新 更多