mongodb - mongoDB autcomplete 返回空数组
问题描述
我正在使用 mongodb 的示例电影数据库 ( https://docs.atlas.mongodb.com/sample-data/sample-mflix#std-label-sample-mflix ) 来试验 mongodb 的自动完成功能。搜索总是返回一个空数组。我已经建立了一个搜索索引,如下所示:
{
"mappings": {
"dynamic": false,
"fields": {
"title": [
{
"minGrams": 3,
"tokenization": "edgeGram",
"type": "autocomplete"
}
]
}
}
}
模型和搜索查询设置如下:
// Creating the Movies model
const Movies = mongoose.model("Movies", new mongoose.Schema({}), "movies");
// Impplementing autocomplete search
app.get("/search", async (req, res) => {
try {
let result = await Movies.aggregate([
{
$search: {
autocomplete: {
path: "title",
query: req.query.title,
fuzzy: {
maxEdits: 2,
prefixLength: 3,
},
},
},
},
]);
res.status(200).json({
status: "success",
results: result.length,
data: { result },
});
} catch (error) {
console.log(error);
}
});
我正在使用邮递员运行测试查询,示例查询是:127.0.0.1:3030/search?title=black
例如,可以使用 .find() 查询模型,并返回完整的文档集合。
非常感谢任何和所有帮助。
解决方案
推荐阅读
- matplotlib - 如何从值表中绘制轮廓?
- android - 如何知道用户何时完成移动 RecyclerView 项目?
- graphql - 什么是 GraphQL 上下文中的“完全水合的用户对象”?
- python - UnicodeDecodeError:“utf-8”编解码器无法解码脚本中的字节错误
- java - Java + Resilience4J - 我自己的处理程序的时间限制器?
- javascript - 如何在每个时刻的状态下处理带有动画的滚动事件?
- c# - 实体框架核心中的存储过程返回多个结果集
- struct - Rust 结构中的结构:借用、生命周期、泛型类型和更多的混乱
- javascript - 在表单中验证用户电话号码后,谁将其安全地传递给 JS 到 PHP,以便我可以将其保存在数据库中?
- mongodb - 官方 Mongo Docker Image 页面上提供的 YAML 在 CentOS 上不起作用