MongoDB数据库文档间的关系
MongoDB数据库文档之间的关系主要分为三种,即一对一(one to one)、一对多(one to many)/多对一(many to one)和多对多(many to many)
一、一对一(one to one)
实际生活中的夫妻关系、恋爱关系等都是一对一关系的体现,而在MongoDB中主要是通过内嵌文档的形式来体现一对一的关系的。将一个文档的一个属性值设置为其对应的一个文档。如下图所示:
二、一对多(one to many)/多对一(many to one)
实际生活中父子关系、用户和订单关系、文章和评论关系等都是一对多关系。所以一对多关系是我们在编程中需要处理的最多的关系。在MongoDB中也可以通过内嵌文档的形式来实现一对多的关系,但是如果数据很多的话会使得文档变得很大,不便于操作。所以一般将两种不同的文档放在不同的集合中,然后在表示“多”的文档中添加一个字段用来存储表示“少”的文档的id。这样就可以实现一对多的关系。
一对多关系举例:用户和订单
1、在数据库的集合user中添加用户信息,如下图所示:
1、在数据库的集合orders中添加订单信息,订单信息中的userid分别对应user集合中的用户的id,如下图所示:
3、由图可知,用户猪八戒对应了两张订单,用户孙悟空对应了一张订单。
二、多对多(many to many)
实际生活中分类和商品、老师和学生等关系属于多对多的关系。在MongoDB中多对多的关系体现与一对多方式相似。不同之处在于在表示“多”的文档中添加一个字段用来存储表示“少”的文档的id时,字段的值为数组,数组里面是对应的“多”的文档的_id值。
总结
本文简单总结并举例说明了MongoDB文档之间的三种关系的表示方式。