Docs 菜单
Docs 主页
/
数据库手册
/ / / /

通配符索引签名

在此页面上

  • 投影签名显示
  • 例子
  • 了解详情

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

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

服务器以相同的方式使用索引,但您可能会注意到listIndexesdb.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 }
}
]

后退

嵌入式对象和数组