2012-04-12 2 views
1

Я использую Morphia для постоянных объектов из Java. Я также запускал пакетные процессы с консоли. Я просто понял, что некоторые значения теперь хранятся как NumberLong и число как простые номера Javascript.Достаточно ли смешать NumberLong и нормальные целые числа в том же поле в MongoDB?

У меня есть указатель на это поле. Кажется, что все в порядке - если я запрашиваю: {f: 100} из консоли все еще возвращает объект, даже если он на самом деле содержит {f: NumberLong(100)}

Это верно для всех водителей? Лучше всего избегать NumberLong, я могу установить значение внутри 32-битного? Смогу ли я сохранить много данных и индексное пространство, если я конвертирую все NumberLongs в базовые числа?

ответ

1

Простые номера JavaScript являются 64-битными поплавками (удваиваются) и занимают 8 байтов, поэтому экономия места не стала бы причиной для этого. Вероятно, в ваших значениях есть значение, которое является последовательным, и между разными числовыми типами существуют компромиссы. Если вам нужны 32-битные целые числа, в оболочке есть тип (NumberInt). Драйверы обычно пытаются сопоставить вещи с языком драйвера, но, по возможности, сочетаются между драйверами.

Смежные вопросы