Как установить начальное значение последовательности hilo в MongoDB Norm? - PullRequest
0 голосов
/ 13 августа 2010

я импортировал много существующих значений в мой mongodb через драйвер нормы (включая «старое» значение id - целое число)Теперь я время от времени получаю дубликаты ключевых ошибок.

Чтобы решить эту проблему, я должен вручную установить начальное значение для последовательности hilo.Как это можно сделать?

Заранее спасибо

1 Ответ

1 голос
/ 26 августа 2010

Информация о ключе HiLo хранится в коллекции NormHiLoKey. Вы можете увеличить значение в этой коллекции, чтобы изменить начальное значение сгенерированных ключей, используя следующую команду в оболочке Mongo:

db.NormHiLoKey.update({ _id: "nameOfCollection" }, { $inc: { ServerHi: 42 } })

ВНИМАНИЕ

Не устанавливать значение ServerHi из оболочки Mongo! ServerHi хранится как 64-разрядное целое число, которое не может быть представлено в оболочке. Поэтому, если вы установите значение из оболочки, оно изменит базовый тип данных и сломает десериализатор NoRM.

Если вы запустите команду db.NormHiLoKey.find(), вы, скорее всего, увидите объекты со свойствами floatApprox. Это указывает на то, что базовый тип данных представляет собой 64-разрядное целое число. Используя оператор $ inc , вы можете безопасно изменять значение, не нарушая ничего.

...