如果我有两个集合:用户和事件。用户可以有很多活动......
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);
我只需要知道如何将该事件与用户相关联,假设搜索查询只会产生一个事件和一个用户。互联网上缺少例子。
答案 0 :(得分:1)
您可能想要创建另一个将存储此类关系的集合,首先添加一个字段" 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"
}
答案 1 :(得分:1)
使用NoSQL数据库时,请不要考虑使用SQL。停止规范化数据。不要试图使数据关系。复制数据非常好。有时需要。
例如,您可以在Username
文档中将User ObjectId
或Event
或两者放入数组中,或者按Event
创建一个User
文档/ Event
组合。
总而言之,这实际上取决于您将要运行的其他查询。