Class: MongoRequestLogger::Adapters::Mongo
- Inherits:
-
Base
- Object
- Base
- MongoRequestLogger::Adapters::Mongo
show all
- Defined in:
- lib/mongo_request_logger/adapters/mongo.rb
Constant Summary
Constants inherited
from Base
Base::DEFAULT_CAP_SIZE
Instance Attribute Summary
Attributes inherited from Base
#authenticated, #collection, #configuration, #connection, #connection_type
Instance Method Summary
collapse
Methods inherited from Base
#authenticated?, #capsize, #check_for_collection, #collection_name, #collection_stats_hash, #reconnect, #reset_collection
Constructor Details
#initialize(client, opts = {}) ⇒ Mongo
Returns a new instance of Mongo.
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# File 'lib/mongo_request_logger/adapters/mongo.rb', line 7
def initialize client, opts = {}
@connection = client.database
@options = {
read: {
mode: :secondary_preferred
},
write: {
w: 0
}
}
@options.merge!(@connection.options.deep_dup)
@options.merge!(opts)
check_for_collection
end
|
Instance Method Details
#clear! ⇒ Object
57
58
59
|
# File 'lib/mongo_request_logger/adapters/mongo.rb', line 57
def clear!
@collection.drop
end
|
#collection_stats ⇒ Object
41
42
43
|
# File 'lib/mongo_request_logger/adapters/mongo.rb', line 41
def collection_stats
collection_stats_hash(@connection.command(collStats: collection_name).first)
end
|
#create_collection ⇒ Object
28
29
30
31
|
# File 'lib/mongo_request_logger/adapters/mongo.rb', line 28
def create_collection
@collection = @connection[collection_name, capped: true, size: capsize]
@collection.create
end
|
#create_index(field) ⇒ Object
33
34
35
|
# File 'lib/mongo_request_logger/adapters/mongo.rb', line 33
def create_index field
@collection.indexes.create_one({ field: 1 }, background: true)
end
|
#find_by_id(id) ⇒ Object
53
54
55
|
# File 'lib/mongo_request_logger/adapters/mongo.rb', line 53
def find_by_id(id)
@collection.find("_id" => ::BSON::ObjectId.from_string(id)).first
end
|
#insert_log_record(record) ⇒ Object
37
38
39
|
# File 'lib/mongo_request_logger/adapters/mongo.rb', line 37
def insert_log_record(record)
@collection.insert_one(record)
end
|
#options ⇒ Object
24
25
26
|
# File 'lib/mongo_request_logger/adapters/mongo.rb', line 24
def options
@options.with_indifferent_access
end
|
#query(criteria, options = {}) ⇒ Object
45
46
47
48
49
50
51
|
# File 'lib/mongo_request_logger/adapters/mongo.rb', line 45
def query(criteria, options={})
q = @collection.find(criteria).sort({'timestamp' => -1})
if options[:limit]
q = q.limit(options[:limit])
end
q
end
|