现代 Web 数据库:MongoDB 的特性与工具
1. MongoDB 数据模型优势
在一些电商框架的数据模型中,会有一系列本质相同的表,仅一个“value”属性因数据类型不同而有差异。这种结构虽允许管理员定义额外的产品类型及其属性,但会带来显著的复杂性。例如,使用 MySQL 查看或更新以这种方式建模的产品时,组装产品所需的 SQL 连接操作会极其复杂。
而若将数据建模为文档形式,就无需进行连接操作,还能动态添加新属性。在开发 MongoDB 应用时,无需过多担忧未来需要哪些数据字段。
2. 即席查询(Ad hoc queries)
2.1 即席查询概念
一个系统支持即席查询意味着无需提前定义系统将接受的查询类型。关系型数据库具备这一特性,能忠实地执行任何格式良好、带有任意数量条件的 SQL 查询。但并非所有数据库都支持动态查询,例如键值存储只能通过值的键进行单轴查询,它们为了简单的可扩展性模型而牺牲了丰富的查询能力。MongoDB 的设计目标之一就是保留关系型数据库世界中至关重要的大部分查询能力。
2.2 查询示例对比
假设要查找所有标签为“politics”且投票数超过 10 的帖子。SQL 查询如下:
SELECT * FROM posts
INNER JOIN posts_tags ON posts.id = posts_tags.post_id
INNER JOIN tags ON posts_tags.tag_id == tags.id
WHERE tags.text = 'politi
超级会员免费看
订阅专栏 解锁全文
971

被折叠的 条评论
为什么被折叠?



