Spring数据和MongoDB - 文档的双向连接

时间:2016-10-14 04:46:15

标签: mongodb spring-data

我的Spring数据中有两个文档 - MongoDB应用程序: 第一个是Contact,看起来像这样:

public class Contact {

   ...
   private List<Account> accounts;

,第二个是Account,看起来像这样:

public class Account {

    ...
    private Contact contact;

我现在的问题是,是否有更好的方法:

1. create contact object
2. save contact object into database
3. create account object
4. set contact object into account object
5. save account object into database
6. set created account object into contact object
7. update contact object

这些步骤很多,我会避免做这么长的列表,以使双向联系和帐户连接。

1 个答案:

答案 0 :(得分:0)

尝试这种方法

MongoDB是一个NOSQL数据库,因此不需要保留订单,例如创建和存储联系人对象,然后按顺序执行更多操作。

维护Contact和Account对象的序列。在存储这两个记录之前,获取序列中的下一个数字并插入联系人和帐户文档。

自动增量序列的参考

https://docs.mongodb.com/v3.0/tutorial/create-an-auto-incrementing-field/ https://www.tutorialspoint.com/mongodb/mongodb_autoincrement_sequence.htm

伪代码:

Get the next Sequence of Contact and Account Id
Add the id's to respective documents
Insert the Documents in Mongodb

在检索记录时,您可以使用$lookup左外连接。

请注意,如果成功发生一次插入并且由于某种原因未发生其他插入,则可能发生数据完整性丢失的可能性。 我们在Mongodb中没有跨集合的事务支持more info