Mongodb Ruby Даты
-
27-09-2019 - |
Вопрос
У меня есть коллекция с индексом: 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) в качестве объекта времени. Это единственная ошибка, которую я могу видеть, что заставит его не работать.