Реализация массива MongoDB с фиксированным размером - PullRequest
2 голосов
/ 23 декабря 2010

Мой вопрос связан с http://jira.mongodb.org/browse/SERVER-991. Мне нужен вложенный массив фиксированного размера, в котором хранятся последние XX события, связанные с текущим документом.

Как реализовать эту функцию на стороне клиента?Я думал о поддержании счетчика по размеру массива, что-то вроде:

  1. Выбор поля счетчика из элемента
  2. Выдвижение элемента во встроенный массив
  3. Если count

Недостатки этого подхода:

  • 3 запроса для каждого события нажимают
  • , поскольку у монго нет транзакций,В массиве может быть меньше или больше элементов, чем разрешено (в то же время два клиента выдвигают или выталкивают элементы), но это меня не очень беспокоит

Не могли бы вы прокомментировать, как это моглобыть реализован?

1 Ответ

3 голосов
/ 23 декабря 2010

Вы можете предварительно инициализировать массивы с нулями и избавиться от проверки размера.Просто нажмите и нажмите.Таким образом, вы также избегаете увеличения размера и перемещения документов.Ваш клиентский код должен обрабатывать массивы с нулевым символом в конце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...