$meta(文本搜索元数据)

最后更新:2026-10-09

$meta(文本搜索元数据)

$meta 在投影中返回 $text 搜索的附加元数据,最常用的是文本相关度得分 textScore。`{ score: { $meta: 'textScore' } }`。必须与 $text 查询搭配使用,且要先用投影取出 textScore 才能按它排序。用于实现按相关度排序的搜索结果页。

分类投影
MongoDB 版本2.6+
示例语言mongosh (Shell)

📝 语法

{ <输出字段>: { $meta: 'textScore' } }

⚙️ 参数

输出字段接收元数据的字段名,如 score。
元数据名目前为 'textScore'。

返回值:带额外元数据字段的查询结果

▶ 示例

请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):

// $meta:取出 textScore 并按相关度排序
// 投影和排序都要写 $meta
db.articles.find(
  { $text: { $search: 'mongodb' } },
  { title: 1, score: { $meta: 'textScore' } }
).sort({ score: { $meta: 'textScore' } })

运行结果:

// 返回文章标题与相关度得分,按得分降序排列

📌 注意事项

更多实战案例即将上线,敬请期待。

📚 相关教程

❓ 常见问题

Q$meta 能返回哪些元数据?
A目前主要是 textScore(文本相关度得分)。
Q为什么排序前要先投影 textScore?
Asort 只能引用查询中可见的字段,需先投影出来才能用。
Q$meta 只能用于 $text 吗?
A是,它专属于文本搜索场景。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏