Mongodb通配符文本索引的用法详解

 更新时间:2024年07月26日 15:13:37   作者:威赞  
通配符索引为Mongodb灵活的数据结构,提供了高效查询的解决方案,本文继续研究官方文档,来归纳总结通配符文本索引的介绍和用法,感兴趣的朋友跟随小编一起看看吧

学习mongodb,体会mongodb的每一个使用细节,欢迎阅读威赞的文章。这是威赞发布的第99篇mongodb技术文章,欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题,欢迎在文章下面点个赞,或者关注威赞。谢谢。威赞文章都是结合官方文档,翻译整理而来,并对每个知识点的描述都认真思考和实践,对难以理解的地方,使用简单容易理解的方式进行阐述。

通配符索引为Mongodb灵活的数据结构,提供了高效查询的解决方案。但Mongodb文档中明确的提出来,通配符索引和通配符文本索引,是两个完全不同的索引。那通配符文本索引到底是什么样的方式来运作,本文继续研究官方文档,来归纳总结通配符文本索引的介绍和用法。

概述

用户可以为集合中多个文本字段创建一个文本索引。这种集合多个字段的索引,就是通配符文本索引。通配符文本索引支持未知字段,可变字段和动态生成字段的文本查询。

使用通配标识符$**和索引类型text来构建通配符文本索引。

db.<collection>.createIndex({"$**": "text"})

通配符索引和通配符文本索引,是不同的索引。通配符文本索引支持使用$text操作符的查询, 而通配符索引不支持使用该操作符查询。

当用户在集合中添加通配符文本索引后,向集合中插入数据或者数据更新时,在通配符文本索引中的数据都会更新。因此,通配符文本索引对数据插入和更新有负面的影响。Mongodb建议,仅在字段不确定或未来字段可能发生变化时,使用通配符文本索引。通配符文本索引于其他索引的工作方式不一致。当集合中包含了过多随意的字段导致创建索引困难时,要考虑重新定义数据的结构。

应用

创建blog集合并插入数据

db.blog.insertMany([
  {
    "_id": 1,
    "content": "This is a blog post about MongoDB",
    "about": "MongoDB",
    "keywords": [
      "MongoDB",
      "database",
      "NoSQL"
    ]
  },
  {
    "_id": 2,
    "content": "This is a blog post about MongoDB and Python",
    "about": "MongoDB",
    "keywords": [
      "MongoDB",
      "Python"
    ]
  },
  {
    "_id": 3,
    "content": "This is a blog post about NoSQL databases",
    "about": "NoSQL",
    "keywords": [
      "NoSQL",
      "database"
    ]
  }
])

构建通配符文本索引

db.blog.createIndex({"$**": "text"})

使用通配符索引查询

db.blog.find({$text: {$search: "MongoDB"}})

查看执行计划

匹配多个字符串

db.blog.find({$text: {$search: "MongoDB NoSQL"}})

到此这篇关于Mongodb通配符文本索引的文章就介绍到这了,更多相关Mongodb通配符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MongoDB 插入操作机制详解之insert() 与 nInserted 的行为剖析(推荐)

    MongoDB 插入操作机制详解之insert() 与 nInserted 的行为剖析(推荐)

    本文将以一段常见的MongoDB Shell脚本为切入点,深入探讨insert() 方法的工作机制、返回值含义,并对比insertMany()的差异,帮助开发者避免常见误解,写出更高效、更可控的数据写入代码,感兴趣的朋友一起看看吧
    2025-11-11
  • MongoDB数据库条件查询技巧总结

    MongoDB数据库条件查询技巧总结

    查询是数据库的基本操作之一,下面这篇文章主要给大家介绍了关于MongoDB数据库条件查询技巧的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • mongodb主从复制_动力节点Java学院整理

    mongodb主从复制_动力节点Java学院整理

    这篇文章主要为大家详细介绍了mongodb主从复制的相关资料,讨论mongodb的部署技术,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • MongoDB数据库设置账号密码完整步骤

    MongoDB数据库设置账号密码完整步骤

    MongoDB这工具很好用的,页面美观,设置账号密码也必不可少,下面这篇文章主要给大家介绍了关于MongoDB数据库设置账号密码的完整步骤,文中给出了详细的实例代码,需要的朋友可以参考下
    2023-05-05
  • 分布式文档存储数据库之MongoDB备份与恢复的实践详解

    分布式文档存储数据库之MongoDB备份与恢复的实践详解

    这篇文章主要介绍了分布式文档存储数据库之MongoDB备份与恢复,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • MongoDB数据备份迁移的全过程

    MongoDB数据备份迁移的全过程

    这篇文章主要记录了MongoDB数据备份迁移的全过程,文中通过图文结合的方式介绍的非常详细,对大家了解学习MongoDB数据备份迁移有一定的帮助,需要的朋友可以参考下
    2024-06-06
  • 在 Fedora 上安装 MongoDB 服务器的方法教程

    在 Fedora 上安装 MongoDB 服务器的方法教程

    Mongo是一个高性能、开源、无模式的、面向文档的数据库,它是最受欢迎的 NoSQL 数据库之一。这篇文章主要介绍了在 Fedora 上安装 MongoDB 服务器的方法,需要的朋友可以参考下
    2020-03-03
  • MongoDB导出查询结果到文件例子

    MongoDB导出查询结果到文件例子

    这篇文章主要介绍了MongoDB导出查询结果到文件例子,本文直接给出示例代码,简洁易懂,需要的朋友可以参考下
    2015-02-02
  • Mongodb 删除集合数据后释放磁盘空间的操作步骤

    Mongodb 删除集合数据后释放磁盘空间的操作步骤

    Mongodb当集合数据占用比较多,对其进行清理后,集合存储空间下降,但磁盘空间并没释放,对于具有活动更新的集合来说,有一些可重用的空间是正常的,过多的可重用空间通常是删除大量数据的结果,这篇文章主要介绍了Mongodb 删除集合数据后如何释放磁盘空间,需要的朋友可以参考下
    2023-11-11
  • Mongodb数据库两种启动方法小结

    Mongodb数据库两种启动方法小结

    MongoDB是一种开源的服务器端NoSQL数据库管理系统,它提供了一种灵活的框架,可以快速地存储、处理和管理大量的数据,这篇文章主要给大家介绍了关于Mongodb数据库两种启动方法的相关资料,需要的朋友可以参考下
    2023-12-12

最新评论