【问题标题】:Atlas search on an ObjectId field doesn't work对 ObjectId 字段的 Atlas 搜索不起作用
【发布时间】:2021-12-11 05:26:16
【问题描述】:

我试图在 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")
            }
        }
    }
])

注意:自动完成查询正常工作。提前谢谢你。

【问题讨论】:

    标签: mongodb search mongodb-query atlas mongodb-atlas-search


    【解决方案1】:

    对于遇到此问题的人,请将索引定义中的点表示法更改为对象。所以,

    type._id:{type:ObjectId()}
    

    应该改为

    type:{_id:{type:ObjectId()}}
    

    【讨论】:

      猜你喜欢
      • 2015-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多