Class: Moped::Protocol::Insert

Inherits:
Object
  • Object
show all
Includes:
Message
Defined in:
lib/moped/protocol/insert.rb

Overview

The Protocol class for inserting documents into a collection.

Examples:

insert = Insert.new "moped", "people", [{ name: "John" }]

Continuing after an error on batch insert

insert = Insert.new "moped", "people",
  [{ unique_field: 1 }, { unique_field: 1 }, { unique_field: 2 }],
  flags: [:continue_on_error]

Setting the request id

insert = Insert.new "moped", "people", [{ name: "John" }],
  request_id: 123

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Message

included, #inspect, #receive_replies, #serialize

Constructor Details

#initialize(database, collection, documents, options = {}) ⇒ Insert

Create a new insert command. The database and collection arguments are joined together to set the full_collection_name.

Examples:

Insert.new "moped", "users", [{ name: "John" }],
  flags: [:continue_on_error],
  request_id: 123

Options Hash (options):

  • :request_id (Number)

    the command’s request id

  • :flags (Array)

    the flags for insertion. Supported flags: :continue_on_error



78
79
80
81
82
83
84
85
86
# File 'lib/moped/protocol/insert.rb', line 78

def initialize(database, collection, documents, options = {})
  @database = database
  @collection = collection

  @full_collection_name = "#{database}.#{collection}"
  @documents            = documents
  @request_id           = options[:request_id]
  @flags                = options[:flags]
end

Instance Attribute Details

#collectionString, Symbol (readonly)



61
62
63
# File 'lib/moped/protocol/insert.rb', line 61

def collection
  @collection
end

#databaseString, Symbol (readonly)



58
59
60
# File 'lib/moped/protocol/insert.rb', line 58

def database
  @database
end

#documentsArray<Hash>



47
# File 'lib/moped/protocol/insert.rb', line 47

document :documents, type: :array

#flagsArray

The flags for the query. Supported flags are: :continue_on_error.



39
# File 'lib/moped/protocol/insert.rb', line 39

flags    :flags, continue_on_error: 2 ** 0

#full_collection_nameString



43
# File 'lib/moped/protocol/insert.rb', line 43

cstring  :full_collection_name

#lengthNumber



22
# File 'lib/moped/protocol/insert.rb', line 22

int32 :length

#op_codeNumber



32
# File 'lib/moped/protocol/insert.rb', line 32

int32 :op_code

#request_idNumber



26
# File 'lib/moped/protocol/insert.rb', line 26

int32 :request_id

Instance Method Details

#log_inspectObject



88
89
90
91
92
# File 'lib/moped/protocol/insert.rb', line 88

def log_inspect
  type = "INSERT"

  "%-12s database=%s collection=%s documents=%s flags=%s" % [type, database, collection, documents.inspect, flags.inspect]
end