Relationship between documents
一对一(one to one)
- 夫妻 (一个丈夫 对应 一个妻子)
- 在MongoDB,可以通过内嵌文档的形式来体现出一对一的关系
一对多(one to many)/多对一(many to one)
- 父母 - 孩子
用户 - 订单
文章 - 评论
- 也可以通过内嵌文档来映射一对多的关系
多对多(many to many)
- 分类 - 商品
老师 - 学生
// one mapping
db.wifeAndHusband.insert ([
{
name: "Huang Rong",
Husband: {
name: "Guo Jing"
}
}, {
name: "Pan",
Husband: {
name: "Dalang"
}
}
]);
db.wifeAndHusband.find();
// many users (Users) and line (Orders)
db.users.insert ([{
username: "SWK"
}, {
username: "ZBJ"
}]);
db.order.insert({
list:["牛肉","漫画"],
user_id: ObjectId("59c47e35241d8d36a1d50de0")
});
db.users.find()
db.order.find()
// Find user swk order
var user_id = db.users.findOne ({username: "ZBJ"}) ._ ID;
db.order.find ({user_id: user_id});
//-many
db.teachers.insert ([
{name: "Hong Qigong"},
{name: "I buy"},
{name: "turtle immortal"}
]);
db.stus.insert([
{
name:“郭靖”,
tech_ids:[
ObjectId(“59c4806d241d8d36a1d50de4”),
ObjectId(“59c4806d241d8d36a1d50de5”)
]
},{
name:“孙悟空”,
tech_ids:[
ObjectId(“59c4806d241d8d36a1d50de4”),
ObjectId(“59c4806d241d8d36a1d50de5”),
ObjectId(“59c4806d241d8d36a1d50de6”)
]
}
])
db.teachers.find()
db.stus.find()