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。停止规范化数据。不要试图使数据相关。复制数据完全没问题。有时需要。

例如,您可以将 UsernameUser ObjectId 或两者都放入数组中的 Event 文档中,或者为每个 [=14 创建一个 Event 文档=]/Event组合。

总而言之,这实际上取决于您将要进行的其他查询运行。