问题描述见
http://www.w3cschool.cc/mongodb/mongodb-relationships.html
一、建立users表
db.users.insert({
"_id":ObjectId("52ffc33cd85242f436000001"),
"name": "Tom Hanks",
"contact": "987654321",
"dob": "01-01-1991"
})
二、建立address表
db.address.insert({
"_id":ObjectId("52ffc4a5d85242602e000000"),
"building": "22 A, Indiana Apt",
"pincode": 123456,
"city": "Los Angeles",
"state": "California"
})
三、查看表
四、用户表改为引用式关系
db.users.update({_id:ObjectId("52ffc33cd85242f436000001")},{
"_id":ObjectId("52ffc33cd85242f436000001"),
"contact": "987654321",
"dob": "01-01-1991",
"name": "Tom Benzamin",
"address_ids": [
ObjectId("52ffc4a5d85242602e000000"),
ObjectId("52ffc4a5d85242602e000001")
]
})
"_id":ObjectId("52ffc33cd85242f436000001"),
"contact": "987654321",
"dob": "01-01-1991",
"name": "Tom Benzamin",
"address_ids": [
ObjectId("52ffc4a5d85242602e000000"),
ObjectId("52ffc4a5d85242602e000001")
]
})
五、查找
法一:两步查找,第一次查询用户地址的对象id(ObjectId),第二次通过查询的id获取用户的详细地址信息。
法二:一步查找
var add = db.address.find({"_id":{"$in":db.users.findOne({"name":"Tom Benzamin"},{"address_ids":1})["address_ids"]}})
查看add
其实也就是把法一中的result替换为查找语句凑成add的查找语句
上边链接的使用DBRef的形式,原理一样
{ $ref : , $id : , $db : }