嵌套模式字段上的Mongoose文本索引

Mongoose text index on nested schema field

本文关键字:Mongoose 文本 索引 模式 字段 嵌套      更新时间:2023-09-26

我有以下模式:

const Schema = ({
  metadata: {
    title: String,
    ...
  },
  ...
});

我想在metadata.title上创建一个文本索引。我可以在任何一级属性上成功创建文本索引,但嵌套的标题会给我带来麻烦。

我尝试了以下代码,但没有成功。我的语法错了吗?我在医生方面运气不好。。。

Schema.index({ 'metadata.title': 'text' });

搜索:

Schema
  .find(
    { $text : { $search : req.params.query } },
    { score : { $meta: "textScore" } })

事实证明,正如@JohnnyHK所指出的,我最初的想法是正确的。我一定是有其他错误导致索引无法工作。。。

const Schema = ({
  metadata: {
    title: {
      type: String,
      index: true
      }
    ...
  },
  ...
});

您可能需要使用新参数重新创建索引或者尝试删除并重新创建集合