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 |