我有一个错误“ $ 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});
}
});
任何帮助将不胜感激:)
答案 0 :(得分:0)
在需要猫鼬之后,在您的入口点文件(例如app.js)上添加mongoose.set('useCreateIndex', true);
。
例如
var express = require('express');
var router = express.Router();
const mongoose = require('mongoose');
mongoose.set('useCreateIndex', true);