Сайт, который объясняет, как все это работает, является MongoDB manual .Есть даже раздел, специально посвященный шардингу .Если вы хотите посмотреть на согласованность данных, посмотрите на репликацию , особенно на то, как данные распространяются на вторичные узлы.
В общем, вы никогда не должны подключаться напрямую к шарду, только кроутер.Маршрутизатор направит вас к осколку (ам), которые вам нужны для выполнения запроса.Сами осколки в основном являются узлами набора реплик, которые содержат подмножество данных, причем каждый сам осколок является набором реплик, содержащим первичный и любое количество вторичных узлов.
Что касается возможной и сильной согласованности, этопредмет с рядом соображений.Например, записи во вторичные серверы являются «в конечном итоге непротиворечивыми», что означает, что запись на первичный сервер с последующим чтением на вторичный может привести к несогласованности из-за того, что запись еще не распространилась на вторичный.Обновления нескольких документов также являются неатомарными (только атомарными на уровне одного документа), что означает, что вы можете выполнить чтение после обновления нескольких документов, так что только некоторые документы отражают обновление, а другие нет.
Все это объясняется в руководстве.Обязательно ознакомьтесь с представленными разделами, включая подразделы, перечисленные ниже.Там вы найдете много полезной информации.