Шардинг на основе диапазона Mongodb с составным ключом - PullRequest
0 голосов
/ 27 августа 2018

Я пытаюсь добиться шардинга, который похож на следующий пример:

       date        |    item_id       |   zone
-------------------+------------------+------------
MinKey...20180827  |  MinKey...MaxKey |   "archive"
20180827...MaxKey  | 0...100          |   "zone_1"
20180827...MaxKey  | 100...200        |   "zone_2"
20180827...MaxKey  | 200...300        |   "zone_3"

(Мне все равно, что происходит с документами с датой 20180827 и выше и item_id ниже 0 или выше300).

Я пытаюсь использовать {date: 1, item_id: 1} ключ шардинга:

sh.shardCollection('mydb.mycollection', {date: 1, item_id: 1})
sh.addTagRange(
    'mydb.mycollection',
    {date: MinKey, item_id: MinKey},
    {date: NumberInt(20180827), item_id: MaxKey},
    'archive'
) // this succeeds
sh.addTagRange(
    'mydb.mycollection',
    {date: NumberInt(20180827), item_id: NumberInt(0)},
    {date: MaxKey, item_id: NumberInt(100)},
    'zone_1'
) // this fails with error that the ranges overlap

Вторая команда завершается с ошибкой «RangeOverlapConflict».Что я делаю не так?

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