javascript - Mongodb Mongoose 复杂的搜索查询

标签 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”、“tags”和“level”中的匹配项。

最佳答案

给你

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){
...
    });

关于javascript - Mongodb Mongoose 复杂的搜索查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36156540/

相关文章:

mongodb - 使用复合键调用 ensureIndex 会导致索引对象中的 _id 字段

javascript - 任何 jquery 插件,如 twitter 自动完成

javascript - 如何以堆栈安全的方式映射树?

javascript - 对象 HTMLInputElement 与 .value 错误

node.js - CSRF 中间件导致麻烦 Node.JS + Express

javascript - Node.js:为 HTTP 代理选择正确的架构,以将许多文件下载给每个用户并将结果作为存档返回

javascript - 选择选择下拉列表后查找最接近的输入文本

javascript - 在 Nodejs 函数中传递外部变量

python - 使用什么来代替游标计数?

python - Mongoengine - 如何执行 "save new item or increment counter"操作?