4

我对 Mongodb 很陌生,我想管理 2 个或多个集合之间的一对一、一对多和多对多关系,而不是文档。Java代码如何处理?我现在没有例子,只是想获得一些一般信息。谢谢!!

4

2 回答 2

3

MongoDB 是无模式的,因此在集合级别上没有模式和文档之间的关系。

DBRef但是,您可以使用s将一个集合中的一些(或全部)文档链接到另一个集合中的文档:

> db.users.insert({_id : a, name : "Drake", age : 15})
> db.pets.insert({name : "Booch", userId : {"$ref" : "users", "$id" : a}})
> db.users.find()
{ "_id" : ObjectId("520aaf5cfbb9bb87c072aa43"), "name" : "Drake", "age" : 15 }
> db.pets.find()
{ "_id" : ObjectId("520aafecfbb9bb87c072aa44"), "name" : "Booch", "userId" : DBRef("users", ObjectId("520aaf5cfbb9bb87c072aa43")) }

在这里,userId字段 inpets在插入后成为 DBRef。

它不像 RDBMS 中的外键,而更像元数据,帮助应用程序链接实体。作为开发人员,您的工作是以编程方式链接它们,而不是使用数据库查询。

于 2013-08-13T22:16:53.717 回答
0

The primary decision here is whether to embed or to use references.

I would suggest Embedding to de-normalize data, store two related pieces of data in a single document. This way operations within a document are less expensive for the server than operations that involve multiple documents.

Check out this and this link.

于 2013-08-13T22:32:06.443 回答