Method: Dataflow::Adapters::MongoDbAdapter#all

Defined in:
lib/dataflow/adapters/mongo_db_adapter.rb

#all(where: {}, fields: [], sort: {}, offset: 0, limit: 0, include_system_id: false) ⇒ Object

retrieve all elements from a data node



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/dataflow/adapters/mongo_db_adapter.rb', line 52

def all(where: {}, fields: [], sort: {}, offset: 0, limit: 0, include_system_id: false)
  projection = fields.map { |field| [field, 1] }

  unless include_system_id || fields.map(&:to_s).include?(SYSTEM_ID)
    # by default, do not select the _id field
    projection << [SYSTEM_ID, 0].freeze
  end

  opts = transform_to_query(where)
  res = client[read_dataset_name].find(opts)
  res = res.projection(projection.to_h)

  res = res.sort(sort)   if sort
  res = res.skip(offset) if offset > 0
  res = res.limit(limit) if limit > 0

  if block_given?
    yield res
  else
    res.to_a
  end
end