如何使用 mongoDb 获取字符串中关键字出现的次数

2023-12-19

我正在下面的聚合中使用 $search 运算符进行文本搜索: 但是我想获取匹配关键字的出现次数(不仅仅是 mongo 提供的 textScore)

  myCollection= await MyCollection.aggregate(
            [
                {
                    $match: {
                        $text: {
                            $search: `${keyword}`
                        }
                    }
                },
                { $sort: { score: { $meta: "textScore" } } },
                {
                    $project: {
                        _id: 1, score: { $meta: "textScore" },
                        // other fields here
                    }
                },
                { $match: { score: { $gt: 1.0 } } },
                { $limit: 100 },
            ],
        )

我的收藏是这样的:(索引仅用于描述)

var myCollectionSchema = mongoose.Schema(

    {  name: String,
       email: String
       description: String
    })
    
myCollectionSchema.index({ 'description': 'text' },{ background:true})
    
mongoose.model('myCollection', myCollectionSchema);

那么如何仅使用 mongo 来实现这样的事情呢? 谢谢


尝试这个:

let keyword = new RegExp("Hi", "i")

db.myCollection.aggregate([
    {
        $addFields: {
            num_of_occ: {
                $size: {
                    $filter: {
                        input: { $split: ["$description", " "] },
                        as: "text",
                        cond: {
                            $regexMatch: { input: "$$text", regex: keyword }
                        }
                    }
                }
            }
        }
    }
]);

Output:

[
  {
    "_id" : ObjectId("6033a3b0406aaa04445434a1"),
    "name" : "Dheemanth",
    "description" : "Everything has hI in it.",
    "num_of_occ" : 2
  },
  {
    "_id" : ObjectId("6033a3b0406aaa04445434a2"),
    "name" : "Heath",
    "description" : "shushi ends with Hi.",
    "num_of_occ" : 2
  },
  {
    "_id" : ObjectId("6033a3b0406aaa04445434a3"),
    "name" : "Abdelmlak",
    "description" : "Hi i am Abdelmlak.",
    "num_of_occ" : 1
  },
  {
    "_id" : ObjectId("6033a3b0406aaa04445434a4"),
    "name" : "Alex",
    "description" : "missing keyword",
    "num_of_occ" : 0
  }
]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 mongoDb 获取字符串中关键字出现的次数 的相关文章

随机推荐

  • 使用OpenGL ES纹理缓存而不是glReadPixels来获取纹理数据

    在 iOS 5 中 引入了 OpenGL ES 纹理缓存 以提供从相机视频数据到 OpenGL 的直接方式 而无需复制缓冲区 里面有关于纹理缓存的简单介绍会议 414 WWDC 2011 的 iOS 5 OpenGL ES 进展 http
  • 使用 GraphicBuffers 快速读取纹理

    我正在编写一些使用着色器在 Android 上运行一些 GPGPU 代码的代码 通常是一个Framebuffer使用因此计算结果存储在纹理中 输入数据通常也是纹理 为了提高性能 最好摆脱glTexImage2D and glReadPixe
  • sorted() 仅按第一位数字排序[重复]

    这个问题在这里已经有答案了 我需要对表格的第一列进行排序 它看起来像 6000 799 7000 352 8000 345 9000 234 10000 45536 11000 3436 1000 342 2000 123 3000 123
  • Android:导航抽屉和 ActionBar 兼容

    我开始与导航抽屉 using 动作栏夏洛克并取得了良好的结果 但我的公司不太可能很快批准这个开源 所以我正在努力切换到 ActionBarCompat ActionBar兼容昨天 2013年7月24日 刚刚正式发布 有人让两者能够很好地合作
  • Android:创建一个带有图像但没有文本的切换按钮

    是否可以在 Android 中创建一个有图像但没有文本的切换按钮 理想情况下它看起来像这样 我看过类似的帖子 答案是更改背景 但我想保留 Holo Light 布局 只需将文本与图像交换 我需要能够以编程方式更改图像源 我有什么想法如何做到
  • GA GEO 图表城市标记不正确

    我有一个连接到谷歌分析帐户的页面 在该页面上 我有一张关注佛罗里达州的 GEO 图 当我将鼠标悬停在地图上的标记上时 大约一半的标记看起来是正确的 另一半的城市名称与地图上的标记不符 例如 该州中部的标记被标记为巴西的城市 例如 请参见下面
  • PHP 检查用户是否在线

    谁能告诉我为什么这不起作用 在我的数据库中lastactive is 2013 12 10 16 15 12 每次用户刷新我网站上的任何页面时都会更新 我选择它并将其设置为变量 lastactive row 5 这是我认为它应该起作用的地方
  • 使用 Typescript+VSCode 调试 Node.js 异步/等待

    我检查了以下答案 Nodejs 7 的异步等待 https stackoverflow com questions 41347260 async await with nodejs 7 如何在 Visual Studio 代码中调试异步 等
  • 如何使用 lldb(或 gdb)调试 Clang 插件

    我想调试 Clang 插件 但是 我找不到有关 Clang 插件调试的信息 如果您知道如何调试 Clang 插件 您能告诉我这些信息吗 谢谢 只是一个小轮廓 因为我自己在自动取款机上尝试 我正在使用lldb 我目前可以停止在插件中的任何给定
  • 使用 NSFetchedResultsController 在空表上自定义单元格

    当我的 UITableView 为空时 我试图放置一个自定义的空单元格 我使用以下代码 NSInteger tableView UITableView tableView numberOfRowsInSection NSInteger se
  • api 和实现的单独 OSGI 捆绑是常见做法吗?

    我有一个带有依赖项的类 我想在不重新启动依赖项的情况下进行热部署 该类有一个接口 但只有一个具体实现 最初 我创建了一个导出接口的包 并使用未导出的激活器和实现类注册了实现 但是 如果我更新捆绑包 则在调用 PackageAdmin ref
  • Django 中的完整日历

    所以 我有一个预约模特 class Appointment models Model user models ForeignKey User date models DateField time models TimeField docto
  • 如何在 pubspec.yaml 中为 flutter 添加用户定义的变量?

    基本上我需要将版本和本地依赖项 URL 分配为用户定义的变量 并在路径中或我希望的任何位置分配相同的变量 示例如下 mydependancyPath D mylocalDependancy commonUtils path mydepend
  • 在 Matlab 中绘制样本的正态分布图

    我有100个采样数 我需要在matlab中绘制它们的正态分布曲线 这些采样数据的均值和标准差很容易计算 但是有没有绘制正态分布的函数呢 如果您有权访问统计工具箱 该功能histfit做我认为你需要的事情 gt gt x randn 1000
  • 如何保护 Android 锁屏应用程序的安全?

    想象一下以下情况 Android 手机上安装并配置了一些锁屏应用程序 设置一些 PIN 码或密码 该应用程序配置为启动后自动运行 我在 Android 10 上检查了这一点 手机重新启动后 操作系统加载时有一个时间窗口 但锁屏应用程序尚未运
  • 如何在 C# 中固定由 Marshal.AllocHGlobal() 分配的内存?

    如何固定由 Marshal AllocHGlobal 分配的内存 我的第一次尝试如下 int bytes 10 IntPtr ip Marshal AllocHGlobal bytes GCHandle iph GCHandle Alloc
  • 常规上传文件

    我正在尝试在 grails groovy 中编写文件和视频的上传器 因此 每次用户填写新表单时 控制器都会上传文件并将文件名与其他字段一起保存到数据库中 所以 这是保存过程 def save def streamInstance new S
  • 如何解决python中找不到文件的问题?

    我编写了一个程序 需要 python 文件所在目录中的文件 这些文件位于 python 文件所在的同一文件夹中 我无法在python脚本中写入文件的完整路径 我用的是 脚本中的方法但它给出错误 请帮我解决问题 这是我的代码 code roo
  • Unity - 窗口大小取决于屏幕大小

    我希望我的游戏具有 1 1 的宽高比 但放大到一定的比例 这意味着宽度和高度必须相同 但不能大于实际屏幕尺寸 最重要的是 为了确保像素大小一致 宽度和高度值必须是 2 的幂值 我在计算所需的值时没有遇到任何问题 int value 2 in
  • 如何使用 mongoDb 获取字符串中关键字出现的次数

    我正在下面的聚合中使用 search 运算符进行文本搜索 但是我想获取匹配关键字的出现次数 不仅仅是 mongo 提供的 textScore myCollection await MyCollection aggregate match t