MongoDB 在 Java 中映射引用关系
MongoDB Mapping Referenced Relationships In Java
如果我有两个collections:用户和事件。一个用户可以有很多事件...
Users
{
Username: "Mark",
Password: "1234567"
}
Events
{
EventTitle: "Skiing",
EventDate: "20/2/2015"
}
我需要根据 java 中的用户名将事件与用户相关联。所以我所做的就是搜索用户....
BasicDBObject query = new BasicDBObject("Username", "Mark");
DBCursor cursor = table.find(query);
我根据活动的标题搜索了活动...
BasicDBObject query = new BasicDBObject("EventTitle", "Skiing");
DBCursor cursor = table.find(query);
我只需要知道如何将该事件与用户相关联,假设搜索查询只会产生一个事件和一个用户。网上缺少例子
您可能想创建另一个集合来存储这种关系,首先向两个集合添加一个字段 "id"(这始终是一个好习惯),然后您可以将一个集合相互关联通过这些 ID。
Users
{
id: "001",
Username: "Mark",
Password: "1234567"
}
Events
{
id: "001",
EventTitle: "Skiing",
EventDate: "20/2/2015"
}
Users_Events
{
user_id: "001",
event_id: "001"
}
在使用 NoSQL 个数据库时,停止思考 SQL。停止规范化数据。不要试图使数据相关。复制数据完全没问题。有时需要。
例如,您可以将 Username
或 User ObjectId
或两者都放入数组中的 Event
文档中,或者为每个 [=14 创建一个 Event
文档=]/Event
组合。
总而言之,这实际上取决于您将要进行的其他查询运行。
如果我有两个collections:用户和事件。一个用户可以有很多事件...
Users
{
Username: "Mark",
Password: "1234567"
}
Events
{
EventTitle: "Skiing",
EventDate: "20/2/2015"
}
我需要根据 java 中的用户名将事件与用户相关联。所以我所做的就是搜索用户....
BasicDBObject query = new BasicDBObject("Username", "Mark");
DBCursor cursor = table.find(query);
我根据活动的标题搜索了活动...
BasicDBObject query = new BasicDBObject("EventTitle", "Skiing");
DBCursor cursor = table.find(query);
我只需要知道如何将该事件与用户相关联,假设搜索查询只会产生一个事件和一个用户。网上缺少例子
您可能想创建另一个集合来存储这种关系,首先向两个集合添加一个字段 "id"(这始终是一个好习惯),然后您可以将一个集合相互关联通过这些 ID。
Users
{
id: "001",
Username: "Mark",
Password: "1234567"
}
Events
{
id: "001",
EventTitle: "Skiing",
EventDate: "20/2/2015"
}
Users_Events
{
user_id: "001",
event_id: "001"
}
在使用 NoSQL 个数据库时,停止思考 SQL。停止规范化数据。不要试图使数据相关。复制数据完全没问题。有时需要。
例如,您可以将 Username
或 User ObjectId
或两者都放入数组中的 Event
文档中,或者为每个 [=14 创建一个 Event
文档=]/Event
组合。
总而言之,这实际上取决于您将要进行的其他查询运行。