0

该问题涉及 mongoid / moped DATE 类型插入。我的代码如下

s=Moped::Session::new(["127.0.0.1"])
s.use "test"
s["a"].insert mydate: Date.strptime("10/02/2014","%m/%d/%Y")

引发错误

# => undefined method `__bson_dump__' for Thu, 02 Oct 2014:Date

为什么 Date 类型无法通过 moped 插入 mongoDB?我很确定 mongoDB 确实支持 Date 类型。

感谢您的帮助。

4

1 回答 1

2

MongoDB 支持 BSON 类型的 UTC 日期时间,在 Moped 中,这映射到 Ruby 时间,而不是日期。但是,您的代码有一个非常简单的解决方案,因为 Mongoid 提供了 Date#mongoize 便利功能。希望这是您想要的并且对您有所帮助。

date_mongoize.rb

require 'moped'
require 'mongoid'

s=Moped::Session::new(["127.0.0.1"])
s.use "test"
s["a"].find.remove_all
s["a"].insert mydate: Date.strptime("10/02/2014","%m/%d/%Y").mongoize
p s["a"].find.to_a

$ ruby​​ date_mongoize.rb

[{"_id"=>"5272a943fa23bace4f7650e3", "mydate"=>2014-10-02 00:00:00 UTC}]
于 2013-10-31T19:03:30.283 回答