Datas de rubi de MongoDB
-
27-09-2019 - |
Pergunta
Eu tenho uma coleção com um índice em: criate_at (que neste caso em particular deve ser uma data)
De Rails Qual é a maneira correta de salvar uma entrada e depois recuperá -la até a data?
Estou tentando algo como:
Modelo: Campo: Criado_at ,: Type => Hora
roteiro:
Col.create (: criate_at => time.parse (outro_model.created_at) .to_s
e
Col.find (: all ,: condições => {: criate_at => time.parse (a mesma coisa)})
E não está retornando nada
Solução
O driver Mongo e vários ORMs lidam com os objetos de data, hora e datetime muito bem; Não há razão para lançá -los em cordas.
Col.create(:created_at => another_model.created_at)
E descobrindo:
Col.all(:created_at => another_model.created_at)
Você não deseja definir strings, porque as datas são armazenadas internamente como objetos de data do BSON e são indexadas e pesquisadas como tal. Se você os salvar como strings, não poderá fazer coisas como comparações maiores/menores que/intervalo de maneira eficaz.
Outras dicas
Col.create(:created_at => Time.parse(another_model.created_at).to_s)
Essa linha passaria seu objeto de tempo como uma string, retire o to_s
Para enviá -lo para a camada de análise de tipo em seu ORM (Mongomapper ou Mongoid) como um objeto de tempo. Esse é o único erro que posso ver que causaria não funcionar.