$ text查询所需的文本索引

时间:2019-10-08 08:25:01

标签: mongodb mongoose

我有一个错误“ $ text查询需要文本索引”。但据我所知,我做的一切正确。

const JobSchema = mongoose.Schema({
  jobTitle: {
    type: String,
    required: true,
    text: true,
    index: true
  }
});

JobSchema.index({ jobTitle: 'text'});

router.get('/search', async (req, res) => {
  try {

    const searchResults = await Job.find({$text: {$search: req.query.q }})
    console.log(searchResults);
    res.json({
      searchResults: searchResults
    });
  } catch (err) {
    res.json({message: err});
  }
});

任何帮助将不胜感激:)

1 个答案:

答案 0 :(得分:0)

在需要猫鼬之后,在您的入口点文件(例如app.js)上添加mongoose.set('useCreateIndex', true);。 例如

var express = require('express');
var router = express.Router();
const mongoose = require('mongoose');
mongoose.set('useCreateIndex', true);