Вопрос

У меня есть коллекция с индексом: create_at (который в этом конкретном случае должен быть датой)

Из рельсов Какой правильный способ сохранить запись, а затем получить его к дате?

Я пытаюсь что-то вроде:

Модель: Поле: create_at: type => время

Сценарий:

Col.Create (: CONSET_AT => TIME.PARSE (ONLY_MODEL.CREATED_AT) .TO_S

и

Col.find (: все: Условия => {: cross_at => time.carnse (то же самое)})

и это не возвращает ничего

Это было полезно?

Решение

Драйвер Mongo и различные обручники обрубления даты, объекты времени и данных, просто отлично; Там нет причин бросать их на строки.

Col.create(:created_at => another_model.created_at)

И поиск:

Col.all(:created_at => another_model.created_at)

Вы не хотите устанавливать строки, потому что даты хранятся внутри объектов даты BSON, а также проиндексированы и искали как таковые. Если вы сохраните их как строки, вы не сможете делать такие вещи, как больше / меньше, чем / эффективно сравнивать.

Другие советы

Col.create(:created_at => Time.parse(another_model.created_at).to_s)

Эта линия будет передавать ваше время времени в качестве строки, снять to_s Чтобы отправить его на разборный слой в вашем ORM (Mongomapper или Mongoid) в качестве объекта времени. Это единственная ошибка, которую я могу видеть, что заставит его не работать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top