MongoDB之不同文档类型的添加与查找

文档之间的关系

一对一(one to one)

  • 在 MongoDB , 可以通过内嵌文档形式体现出一对一的关系。(相对较少)
    • 夫妻(一个丈夫 对应 一个妻子)
    db.WifeAndHusband.insert([
    	{
    		name:"黄蓉",
    		husband:{
    			name:"武大郎"
    		}
    	},{
    		name:"潘金莲"
    		husband:{
    			name:"武大郎"
    		}
    	}
    
    ])
    

一对多(one to many)/多对一(many to one)

  • 一对多/多对一
    • 父母 ==> 孩子
    • 用户 ==> 订单
    • 文章 ==> 评论
    #一对多,用户(users)和 订单(orders)
    db.user.insert([
    	{username:"swk"},
    	{username:"zbj"}
    ])
    #添加一个属于“swk”的订单
    db.order.insert(
    	{
    	list:["apple","banana","pear"],
    	user_id = "swk"的id
    	}
    )
    #查找用户swk的订单
    	#1.获取swk的id
    	var user_id = db.users.findOne({username:"swk"})._id
    	#2.查找用户swk的订单
    	db.order.find({user_id:user_id})
    #两个 user_id 的区别:前者是添加swk订单时的属性,后者是获取swk的id值
    

多对多(many to many)

  • 多对多
    • 分类 - 商品
    • 老师 - 学生
    # 插入老师列表
    db.teacher.insert([
    	{name:"洪七公"}{name:"黄药师"}{name:"龟仙人"}
    ])
    # 插入学生列表,并添加老师id
    db.stus.insert([
    	{
    	name:"郭靖",
    	tech_ids:[洪七公的id,
    			  黄药师的id]
    	}{
    	name:"孙悟空",
    	tech_ids:[洪七公的id,
    			  黄药师的id,
    			  龟仙人的id]
    	}
    ])
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值