Mongodb通配符索引签名和使用限制问题记录
学习mongodb,体会mongodb的每一个使用细节,欢迎阅读威赞的文章。这是威赞发布的第98篇mongodb技术文章,欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题,欢迎在文章下面点个赞,或者关注威赞。谢谢。威赞文章都是结合官方文档,翻译整理而来,并对每个知识点的描述都认真思考和实践,对难以理解的地方,使用简单容易理解的方式进行阐述。
Mongodb的通配符索引,为灵活的数据结构,提供了便利,但使用上有哪些限制?本文结合Mongodb的官方文档,总结了Mongodb通配符索引的使用和限制。
索引签名
自Mongodb5.0开始,通配符索引的wildcardProjection也会被包含到索引签名当中。索引签名,是识别索引唯一性的标志,包含了构建索引的各种参数。将通配符索引的wildcardProjection包含到索引当中,用户可以建立带有相同索引键但wildcardProjection不同的索引。如为集合books创建两个通配符索引。
db.books.createIndex({"$**": 1},{ wildcardProjection: { "author.name": 1, "author.website": 1 }, name: "authorWildcard" }) db.books.createIndex({"$**": 1},{ wildcardProjection: { "publisher.name": 1 }, name: "publisherWildcard" })
查看索引
db.books.getIndexes() [ { "v": 2, "key": { "_id": 1 }, "name": "_id_" }, { "v": 2, "key": { "$**": 1 }, "name": "authorWildcard", "wildcardProjection": { "author.name": 1, "author.website": 1 } }, { "v": 2, "key": { "$**": 1 }, "name": "publisherWildcard", "wildcardProjection": { "publisher.name": 1 } } ]