用于搜索的Mongodb Mongoose复杂查询

时间:2016-03-22 14:03:39

标签: javascript node.js mongodb express mongoose

我正在尝试实施一个动态搜索栏,根据用户输入的内容显示建议。例如,您开始输入" j"你会看到诸如" Java,JavaScript,JQuery"等选项。 ...然后你输入" ja"并且只看到" Java,JavaScript"。

我的架构如下所示:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var QuestionSchema = new Schema({
    text : String,
    answers : Array,
    tech : String,
    tags : [String],
    level : String,
    createdAt : Date
});

// Return the model
module.exports = mongoose.model('Questions', QuestionSchema);

我需要搜索才能在' text',' tech'标记'标记'以及'中查找匹配项。

1 个答案:

答案 0 :(得分:3)

你去了



let query = [
        { 'text': { $regex: new RegExp(keyword, "i") } },
        { 'tech': { $regex: new RegExp(keyword, "i") } },
        { 'tags': { $regex: new RegExp(keyword, "i") } },
        { 'level': { $regex: new RegExp(keyword, "i") } }
    ]

    Question.find({ $or: query }, function(err, results){
...
    });