2013-08-22 4 views
1

У меня возникли проблемы с хорошей моделью mongodb. У меня 2 миллиона сотрудников. Мне нужно сохранить массив идентификаторов супервизора, которые могут получить доступ к сотруднику. Данные изображения подобны этому.производительность mongodb с большим массивом в документе

{ 
'fullName':'Jonathan Smith', 
'employeeId':'8675309', 
'supervisors':[1234,7654,45676,34543,56545] 
} 

Каждый массив может иметь сотни элементов. Элементы также могут колебаться. Поэтому мне нужно будет выполнить быстрые $ puts и $ pulls, чтобы добавлять и вычитать элементы из массива.

У меня есть хороший пример операции. У нас есть диспетчер 5555, который теперь имеет доступ к 510 000 сотрудников. Поэтому мне нужно обновить эти 510 000 сотрудников, добавив 5555 для этих рабочих групп.

Тогда будет запрос, дайте мне доступ ко всем сотрудникам 5555 сотрудников.

есть ли лучший способ сделать это? Есть ли что-то, что я могу сделать, чтобы обеспечить производительность.

ответ

1

Похоже, что эти 510 000 сотрудников могут принадлежать другому классу или сущности, а не просто «сотрудникам, управляемым супервизором 5555». Назовите этот класс «A». Сотрудники будут отмечены как принадлежащие классу «А» (и, возможно, другим классам), а 5555 будет отмечен как менеджер «А», но не отдельных сотрудников. Это связано с предположением о том, что для менеджера класса «А» более вероятно, что все 510 000 сотрудников выпадают из класса «А».

+0

Хорошо, я понимаю, что вы говорите. Это уменьшит элементы массива элементов pf из-за того, что супервизоры могут иметь одну и ту же группу A. Так что скажем, я использовал этот подход. Что касается того факта, что у меня все еще есть 2 миллиона сотрудников, и вам нужно выполнять операции push и pull для этих сотрудников, добавляя идентификаторы группы. Любая проблема с производительностью? – FarscapePROJ

+0

2 миллиона документов не очень много. Если вам часто не нужно обновлять все эти документы в режиме реального времени, с интерактивным ответом, это не имеет большого значения. Вы должны иметь возможность обновлять несколько тысяч документов в секунду. – drmirror

+1

Недавно я написал сообщение в блоге о растущих массивах в MongoDB: http://goo.gl/eDcV5z Там вы можете увидеть ориентир для этого поведения. –

Смежные вопросы