温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

MongoDB 中使用模式构建之属性模式的

发布时间:2021-03-11 14:39:22 来源:亿速云 阅读:150 作者:小新 栏目:数据库

小编给大家分享一下MongoDB 中使用模式构建之属性模式的,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

简单描述:

直接进入了解属性模式。它特别适合以下的情况:

  1. 有一个大的文档,但是它其实拥有一些相似的字段,而且这些字段的一个子集具有相同的特征,最后其实需要对这些子集字段进行排序或者查询;

  2. 实际上也不是所有文档都会出现需要的排序字段;

  3. 或者上述两个条件均满足
    事实上考虑到性能方面的原因,为了优化搜索可能需要许多索引才能照顾到这些子集。但是创建越多的索引也只会导致性能的下降。属性模式为这种情况提供了一个很好的解决方案。

实例:

一个订单数据文档,其实是有很多需要记录的时间,比如创建时间,支付时间,发货时间等等。在设计数据结构的时候当然第一时间就会想到如图:
MongoDB 中使用模式构建之属性模式的

实际上这种设计在时间类型比较少的情况下是没有太大问题,但是结合了实际业务场景,一张订单的时间当然不会太少,有时候为了优化排序,不得不建立相应的所以,现在问题就来的,根据这么多字段逐个建立索引那可能建立很多,这样反而会降低整体查询的性能。那么这时候使用属性模式就很合适了。如下图:

MongoDB 中使用模式构建之属性模式的如果订单数据结构考虑使用了这种模式后,就不需要反复为相似的字段子集建立索引,大大提高查询效率。

结论:

属性模式针对每个文档中许多类似字段提供了更简单的文档索引。通过将这个数据子集移动到一个键值子文档中,我们可以使用不确定的字段名,为信息添加额外的限定符,并更清楚地说明原始字段和值的关系。当我们使用属性模式时,由于需要的索引更少,查询变得更简单更快。

看完了这篇文章,相信你对“MongoDB 中使用模式构建之属性模式的”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI