mongodb - 对 ObjectId 字段的 Atlas 搜索不起作用
问题描述
我试图在 ObjectId 字段上实现 Atlas 搜索查询,但没有匹配到任何内容。这是索引定义。
{
"mappings": {
"dynamic": false,
"fields": {
"hscode": {
"foldDiacritics": true,
"maxGrams": 4,
"minGrams": 1,
"tokenization": "edgeGram",
"type": "autocomplete"
},
"title": {
"foldDiacritics": true,
"maxGrams": 10,
"minGrams": 2,
"tokenization": "edgeGram",
"type": "autocomplete"
},
"type._id": {
"type": "objectId"
}
}
}
}
查询详情如下
db.categories.aggregate([
{
$search:{
index:"categorySearch",
equals:{
path:"type._id",
value:ObjectId("61711b4275e9397ec79bdfed")
}
}
}
])
注意:自动完成查询工作没有问题。提前谢谢你。
解决方案
对于那些寻求修复的人,请尝试将索引更改为如下所示。应添加文档类型以使其正常工作。
type:{
_id:{
type:"objectId"
}
type:"document"
}
推荐阅读
- java - 带有 Jaxb 和 SOAP 消息的 OpenJDK 10 中的 ClassCastException
- sql - 将三分位数加入季度 SQL(从 4 个月到 3 个月)
- python - 如何在 Python 中通知父线程作业完成
- r - reprex 忽略 system() 的输出
- bash - 我可以在 git bash 中使用命令替换吗?
- c# - 如何在一个列表中组合多个表达式
与 LINQ 一起使用? - bash - 在 shell 脚本中,将输入参数写入 json 文件
- java - Bouncycastle 无法生成私钥 - 未知 KeySpec 类型:java.security.spec.X509EncodedKeySpec
- java - 如何使用 HTML 标记为 strings.xml 文件中的字符串着色?
- python - Python 3:RuntimeError:同步对象只能通过继承在进程之间共享