Подтвердить что ты не робот

Хранение штампа времени как числа Mongoid

Я новичок в Mongoid. В моем файле модели я создал поле с типом данных BigDecimal. Я хочу сохранить в нем отметку времени. Ниже приведена модель, которую я использую:

class Test
  include Mongoid::Document
  field :time_stamp, type: BigDecimal
end

И Ниже приведен код, который я использую для создания документа:

aTime = "Wed Apr 24 09:48:38 +0000 2013"
timest = aTime.to_time.to_i
Test.create({time_stamp: timest})

Я вижу, что time_stamp хранится как String в базе данных. Может ли кто-нибудь направить меня, чтобы сохранить метку времени как число в БД, чтобы я мог выполнять некоторые операции над ней. Спасибо заранее.

4b9b3361

Ответ 1

В соответствии с этим ответом числовые типы, поддерживаемые MongoDB, следующие:

MongoDB stores data in a binary format called BSON which supports these numeric data types:

int32 - 4 bytes (32-bit signed integer)
int64 - 8 bytes (64-bit signed integer)
double - 8 bytes (64-bit IEEE 754 floating point)

Усилена этим утверждением в документация Mongoid:

Types that are not supported as dynamic attributes since they cannot be cast are:

BigDecimal
Date
DateTime
Range

Я не знаю о вещах, которые вы хотите использовать в этом поле, но если вы действительно хотите, чтобы они были сохранены в виде числа, вам нужно использовать другой числовой тип, поддерживаемый MongoDB (BSON), возможно, Float или Integer.