前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MongoDB文本搜索聚合函数使用

MongoDB文本搜索聚合函数使用

原创
作者头像
玖叁叁
发布2023-04-14 15:52:52
5830
发布2023-04-14 15:52:52
举报
文章被收录于专栏:玖叁叁玖叁叁

$match

$match函数用于对文本进行匹配搜索,例如:

代码语言:javascript
复制
db.articles.aggregate([
   { $match: { $text: { $search: "database" } } },
   { $group: { _id: "$author", count: { $sum: 1 } } }
])

这个命令将在articles集合中搜索包含关键词“database”的文章,然后按照作者进行分组,并计算每个作者的文章数量。

$sortByCount

$sortByCount函数用于按照文本匹配的结果进行排序,例如:

代码语言:javascript
复制
db.articles.aggregate([
   { $match: { $text: { $search: "database" } } },
   { $sortByCount: "$author" }
])

这个命令将在articles集合中搜索包含关键词“database”的文章,然后按照作者进行分组,并按照文章数量进行排序。

$project

$project函数用于将搜索结果中的字段进行投影,例如:

代码语言:javascript
复制
db.articles.aggregate([
   { $match: { $text: { $search: "database" } } },
   { $sortByCount: "$author" },
   { $project: { author: "$_id", count: 1, _id: 0 } }
])

这个命令将在articles集合中搜索包含关键词“database”的文章,然后按照作者进行分组,并按照文章数量进行排序,最后投影出作者和文章数量字段。

$text

$text函数用于指定需要搜索的文本字段和搜索条件,例如:

代码语言:javascript
复制
db.articles.aggregate([
   { $match: { $text: { $search: "database" } } },
   { $sortByCount: "$author" },
   { $project: { author: "$_id", count: 1, _id: 0 } },
   { $text: { $search: "relational" } }
])

这个命令将在articles集合中搜索包含关键词“database”的文章,然后按照作者进行分组,并按照文章数量进行排序,最后投影出作者和文章数量字段,然后再在搜索结果中搜索包含关键词“relational”的文章。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • $match
  • $sortByCount
  • $project
  • $text
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档