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

日付型がモペット経由で mongoDB に挿入できないのはなぜですか? mongoDB が Date タイプをサポートしていることは確かです。

お手伝いありがとう。

4

1 に答える 1

2

MongoDB は BSON タイプの UTC datetime をサポートします。Moped では、これは Date ではなく Ruby Time にマップされます。ただし、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 に答える