猫鼬查找查询部分匹配数组

时间:2018-07-22 20:42:52

标签: javascript node.js mongoose

我有2种模式:问题和主题。我尝试做一个查询,用户可以在其中搜索文本匹配项和主题(可以从下拉列表中进行选择)。

我的问题是,当用户搜索多个主题时-并不会显示所有问题。因为查询与主题的空洞数组匹配,所以还会给出部分与主题匹配的问题。这就是查询的样子:

app.post('/search', function (req, res){
  var search_text = req.body.search_text;
  
  // Running on all topics first to convert the names to id's
  Topic.find({name: {"$in": req.body.dropdown_topics_clicked}}).select('_id').exec(function (err, topics){
    if (err) return console.error(err);
    
    var topics_for_search = topics;
    
    // Fetching all questions, and condition with the the text and the topics.
    Question.find().and([
      { $or: [ {'syntax': { $regex: search_text}}, {'answer': { $regex: search_text}}] },
      { topics: {"$in":topics_for_search} }
      ])
    .exec(function (err, questions){
      if (err) return console.error(err);
      res.json(questions);
    });
  });
});

如何查询ID数组上运行的部分匹配内容?

0 个答案:

没有答案