在mongodb中保存/获取域对象时,有没有办法动态设置集合?我想在每次获取/保存时限制用户访问某个集合,因为它将成为一个多租户数据库,每个客户都有自己的集合(我不使用hibernate,所以multitenant-plugin不是一个选项)
我的想法是设置一个标识正确集合的服务,这是基于会话的(集合名称将取决于网址解析等)
我想过用插件中的doWithDynamicMethods覆盖所有域类的get / set。但我需要能够在“保存”和“获取”时设置集合。
所以我知道你可以使用数据库mongo对象指定一个集合,但是你可以通过调用'save'.e.g来传递'collection'这个名字。 Person p = new Person(name:john).save(collection:collectionNameService.getCollectionName(Person),flush:true)
在这种情况下,我可以覆盖域对象的泛型save / get,并使用额外的'collection'参数调用save。
建议欢迎:)
亲切地说,每个
答案 0 :(得分:0)
我做了一些非常相似的事情,但有一些PHP库。
但是,修改“save”和“load”方法从正确的集合加载是绝对有意义的。 MongoDB会自动为您创建集合,因此在基本级别上这将有效。
只有两个主要警告: