Gorm mongodb 1.0-M2 - выбор коллекции при сохранении / получении - PullRequest
2 голосов
/ 03 марта 2011

Есть ли способ установить коллекцию динамически при сохранении / получении объекта домена в mongodb? Я хочу ограничить пользователей определенной коллекцией каждый раз, когда они получают / сохраняют, так как это будет мультитенантная база данных, и у каждого клиента будет своя собственная коллекция (я не использую hibernate, поэтому плагин multitenant не является опцией)

Мои мысли состоят в том, чтобы настроить службу, которая идентифицирует правильную коллекцию и которая основана на сеансе (имя коллекции будет зависеть от разрешения URL среди прочего)

Я думал о переопределении get / set для всех классов домена с помощью doWithDynamicMethods в плагине. Но мне нужно иметь возможность установить коллекцию на «сохранить» и «получить».

Итак, я знаю, что вы можете указать коллекцию с объектом mongo базы данных, но не могли бы вы просто передать имя 'collection', которое вызывает 'save' .e.g. Person p = new Person (имя: Джон) .save (коллекция: collectionNameService.getCollectionName (Person), сброс: true)

В этом случае я мог бы просто переопределить общее сохранение / получение для доменных объектов и вместо этого вызвать сохранение с дополнительным параметром collection.

Предложения приветствуются:)

Сердечно, за

1 Ответ

0 голосов
/ 03 марта 2011

Я сделал нечто очень похожее, но с некоторыми библиотеками PHP.

Но да, определенно имеет смысл изменить методы "save" и "load" для загрузки из правильной коллекции.MongoDB автоматически создаст для вас коллекцию, поэтому на базовом уровне это сработает.

Только два основных замечания:

  1. Добавляете ли вы индексы в эти новые коллекции?Вы не хотите, чтобы «обеспечитьIndex» для каждого отдельного действия, но вы, вероятно, хотите каким-то образом узнать, что новая коллекция была создана, чтобы вы могли индексировать (вероятно, задание на сервере)
  2. Сколько пользователей вы планируете иметь?Возможно, вы захотите взглянуть на некоторые ограничения, касающиеся количества доступных коллекций .
...