BSON
Moped::BSON
is the namespace for Moped's BSON implementation.
It's implemented in pure (but fast) ruby. The public entry point into the
Moped::BSON
module is Moped::BSON::Document
, which
is just a subclass of Hash, but exposes two class methods:
serialize
and deserialize
. serialize
accepts a Moped::BSON::Document
(or Hash) and returns the
serialized BSON representation. deserialize
does the opposite: it
reads data from an IO-like input and returns a deserialized
Moped::BSON::Document
.
Types
Object Ids
The Moped::BSON::ObjectId
class is used for generating and
interacting with Mongo's ids.
id = Moped::BSON::ObjectId.new # => 4f8583b5e5a4e46a64000002 id.generation_time # => 2012-04-11 13:14:29 UTC id == Moped::BSON::ObjectId.from_string(id.to_s) # => true
The following is a table of the object id API.
Operation | Syntax |
---|---|
ObjectId.new
Instantiate a new object id. |
Moped::BSON::ObjectId.new |
ObjectId.from_string
Instantiate a new object id from a string. |
Moped::BSON::ObjectId.from_string("4f8d8c66e5a4e45396000009") |
ObjectId.from_time
Instantiate a new object id from a time. |
Moped::BSON::ObjectId.from_time(Time.new) |
ObjectId.legal?
Checks if a string is a valid object id. |
Moped::BSON::ObjectId.legal?("4f8d8c66e5a4e45396000009") |
Code
The Moped::BSON::Code
class is used for working with
javascript on the server.
Moped::BSON::Code.new("function () { return this.name }") Moped::BSON::Code.new("function (s) { return s.prefix + this.name }", prefix: "_")
Binary Data
The Moped::BSON::Binary
class allows you to persist binary
data to the server, and supports the following types: :generic
,
:function
, :old
, :uuid
,
:md5
, and :user
. Note that :old
is deprecated, but still present to support legacy data.
Moped::BSON::Binary.new(:md5, Digest::MD5.digest(__FILE__))