如何在mongodb中建立关系? 我在两个集合用户和connection_log之间创建外键。 如何从connection_log找到关系中的用户集合? 请引导我或以示例向我展示。
答案 0 :(得分:2)
MongoDB中没有JOIN的概念。没有"外键"声明。没有参照完整性检查。习惯它。
您可以直接在文档中建立关系模型:One to Many作为One中的数组...
// users document
{
"_id" : ObjectId("536bc13f20c26cde11a40001"),
"userName" : "Mudshark"
"connection_log" : [
{
"startTime" : ISODate("2014-05-09T17:40:24.307Z"),
"endTime" : ISODate("2014-05-09T18:40:24.307Z")
},
{
"startTime" : ISODate("2014-05-01T17:00:00.000Z"),
"endTime" : ISODate("2014-05-01T18:00:00.000Z")
}
]
}
{
"_id" : ObjectId("536bc13f20c26cde11a40002"),
"userName" : "Tailhook"
"connection_log" : [
{
"startTime" : ISODate("2014-05-08T23:32:12.992Z"),
"endTime" : ISODate("2014-05-08T01:32:12.992Z")
}
]
}
或者你利用ObjectId来"关联" 2个不同馆藏的文件。
// users document
{
"_id" : ObjectId("536bc13f20c26cde11a40001"),
"userName" : "Mudshark"
}
{
"_id" : ObjectId("536bc13f20c26cde11a40002"),
"userName" : "Tailhook"
}
// connection_log document
{
"_id" : ObjectId("aefe13f20c26cde11123453"),
"user_id" : ObjectId("536bc13f20c26cde11a40001"),
"startTime" : ISODate("2014-05-09T17:40:24.307Z"),
"endTime" : ISODate("2014-05-09T18:40:24.307Z")
}
{
"_id" : ObjectId("aefe13f20c26cde11125511"),
"user_id" : ObjectId("536bc13f20c26cde11a40002"),
"startTime" : ISODate("2014-05-08T23:32:12.992Z"),
"endTime" : ISODate("2014-05-08T01:32:12.992Z")
}
{
"_id" : ObjectId("aefe13f20c26cde111212ab"),
"user_id" : ObjectId("536bc13f20c26cde11a40001"),
"startTime" : ISODate("2014-05-01T17:00:00.000Z"),
"endTime" : ISODate("2014-05-01T18:00:00.000Z")
}
不要绝望。您将在" Web Scale":http://youtu.be/b2F-DItXtZs 进行操作