通配符索引签

从 MongoDB 5.0 开始,通配符索引wildcardProjection的选项 包含在索引签名中。索引签名是唯一标识索引的参数的组合。这意味着您可以使用相同的键模式创建多个通配符索引,只要选项不包含相同的字段即可。wildcardProjection

投影签名显示

从 MongoDB 6.3、6.0.5 和 5.0.16 开始,该wildcardProjection 字段以其提交的形式存储索引投影。服务器的早期版本可能已经以标准化形式存储了投影。

listIndexes服务器以相同的方式使用索引,但您可能会注意到和 命令的输出有所不同db.collection.getIndexes()

例子

考虑集合上的以下通配符索引books

db.books.createIndex(
   {
      "$**": 1
   },
   {
      wildcardProjection: {
         "author.name": 1,
         "author.website": 1
      },
      name: "authorWildcard"
   }
)

索引键模式是"$**". 如果指定不同的 wildcardProjection. 例如:

db.books.createIndex(
   {
      "$**": 1
   },
   {
      wildcardProjection: {
         "publisher.name": 1
      },
      name: "publisherWildcard"
   }
)

要查看创建的索引,请运行以下 getIndexes()方法:

db.books.getIndexes()

输出:

[
   { v: 2, key: { _id: 1 }, name: '_id_' },
   {
      v: 2,
      key: { '$**': 1 },
      name: 'authorWildcard',
      wildcardProjection: { author: { website: true, name: true }, _id: false }
   },
   {
      v: 2,
      key: { '$**': 1 },
      name: 'publisherWildcard',
      wildcardProjection: { publisher: { name: true }, _id: false }
   }
]

了解更多

Copyright © 上海锦木信息技术有限公司 all right reserved,powered by Gitbook文件修订时间: 2023-09-01 17:10:26

results matching ""

    No results matching ""