返回介绍

高级篇

发布于 2024-10-02 23:28:20 字数 1536 浏览 0 评论 0 收藏 0

注意事项

  • mongodb 的 key 值不能是特殊字符如非 utf8 字符、空格和引号、双引号、点和斜杠。
  • MongoDB 只支持对单行记录的原子性修改,并不支持对多行数据的原子操作。
  • 单个文档限制在 16MB,如果要存储更大数据,考虑用 GirdFS

1、索引

  • 索引种类:分为单列、组合、地理 GPS、哈希、文本

  • 索引类型:唯一、部分

全文索引

全文检索对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。 MongoDB 从 2.4 版本开始支持全文检索,目前支持 15 种语言的全文索引。

2、正则表达式

MongoDB 使用 $regex 操作符来设置匹配字符串的正则表达式。

MongoDB 使用 PCRE (Perl Compatible Regular Expression) 作为正则表达式语言。

不同于全文检索,我们使用正则表达式不需要做任何配置。

3、固定集合

# 创建固定集合
db.createCollection("cappedLogCollection",{capped:true,size:10000})

# 判断是否是固定集合
db.cappedLogCollection.isCapped()

其它

图查询 $graphLookup

db.employees.aggregate([{
      $graphLookup: {
         from: "employees",
         startWith: "$reportsTo",
         connectFromField: "reportsTo",         connectToField: "name",
         as: "reportingHierarchy"
      }
   }
])

MongoDB GridFS

GridFS 用于存储和恢复那些超过 16M(BSON 文件限制)的文件(如:图片、音频、视频等)。

GridFS 也是文件存储的一种方式,但是它是存储在 MonoDB 的集合中。

GridFS 可以更好的存储大于 16M 的文件。

GridFS 会将大文件对象分割成多个小的 chunk(文件片段),一般为 256k/个,每个 chunk 将作为 MongoDB 的一个文档(document)被存储在 chunks 集合中。

GridFS 用两个集合来存储一个文件:fs.files 与 fs.chunks。

每个文件的实际内容被存在 chunks(二进制数据)中,和文件有关的 meta 数据(filename,content_type,还有用户自定义的属性)将会被存在 files 集合中。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文