Как установить начальное значение последовательности hilo в MongoDB Norm?
Я импортировал много существующих значений в мой mongodb через драйвер нормы (включая "старое" значение id - целое число). Теперь я время от времени получаю дубликаты ключевых ошибок.
Чтобы решить эту проблему, я должен вручную установить начальное значение для последовательности hilo. Как это может быть сделано?
заранее спасибо
1 ответ
Информация о ключе HiLo хранится в коллекции NormHiLoKey. Вы можете увеличить значение в этой коллекции, чтобы изменить начальное значение сгенерированных ключей, используя следующую команду в оболочке Mongo:
db.NormHiLoKey.update({ _id: "nameOfCollection" }, { $inc: { ServerHi: 42 } })
ВНИМАНИЕ
Не устанавливайте значение ServerHi из оболочки Mongo! ServerHi хранится как 64-битное целое число, которое не может быть представлено в оболочке. Поэтому, если вы установите значение из оболочки, оно изменит базовый тип данных и сломает десериализатор NoRM.
Если вы запустите db.NormHiLoKey.find()
команда, вы, вероятно, увидите объекты со свойствами floatApprox. Это указывает на то, что базовый тип данных представляет собой 64-разрядное целое число. Используя оператор $inc, вы можете безопасно изменять значение, не нарушая ничего.