Технически не е необходимо да разделяте съдържанието си и просто трябва да индексирате полето си. Да, можете да създадете индекс в полето за дата и той ще бъде спазен, което можете да видите, като посетите плана за заявка db.collection.explain("executionStats")
Въпреки това, изборът на shard ключ е много важен. има няколко неща, които трябва да имате предвид, докато избирате shard key
- Write scaling (high cardinality, Randomization)
- Query Isolation. (read)
избирането на полето за дата всъщност дава много висока кардиналност, но не успява да извърши рандомизирането и в резултат на това всички документи се съхраняват в единичен шард и следователно ограничава капацитета за запис на системата. По същата причина ObjectId не се препоръчва да се използва като разделен ключ.
http://docs.mongodb.org/manual/core/sharding- shard-key/ Съдържание от връзката по-горе.."MongoDB генерира стойности на ObjectId при създаване на документ, за да създаде уникален идентификатор за обекта. Най-значимите битове данни в тази стойност обаче представляват времеви печат, което означава, че те се увеличават в редовен и предсказуем модел. Въпреки че тази стойност има висока кардиналност, когато използвате тази, която и да е дата или друго монотонно нарастващо число като ключ на фрагмент, всички операции за вмъкване ще съхраняват данни в единична част и следователно в един фрагмент. в резултат на това капацитетът за запис на този шард ще определи ефективния капацитет за запис на клъстера."