@@ -13,6 +13,14 @@ def __init__(self):
13
13
]
14
14
15
15
16
+ class MyCounterIndex_AllCounters (AbstractJavaScriptCountersIndexCreationTask ):
17
+ def __init__ (self ):
18
+ super (MyCounterIndex_AllCounters , self ).__init__ ()
19
+ self .maps = [
20
+ "counters.map('Companies', function (counter) {\n return {\n heartBeat: counter.Value,\n name: counter.Name,\n user: counter.DocumentId\n };\n })"
21
+ ]
22
+
23
+
16
24
class MyMultiMapCounterIndex (AbstractJavaScriptCountersIndexCreationTask ):
17
25
class Result :
18
26
def __init__ (self , heart_beat : float = None , name : str = None , user : str = None ):
@@ -204,3 +212,32 @@ def test_basic_map_index(self):
204
212
terms = self .store .maintenance .send (GetTermsOperation ("MyCountersIndex" , "name" , None ))
205
213
self .assertEqual (1 , len (terms ))
206
214
self .assertIn ("heartrate" , terms )
215
+
216
+ def test_can_map_all_counters_from_collection (self ):
217
+ with self .store .open_session () as session :
218
+ company = Company ()
219
+ session .store (company , "companies/1" )
220
+ session .counters_for_entity (company ).increment ("heartRate" , 7 )
221
+ session .counters_for_entity (company ).increment ("likes" , 3 )
222
+ session .save_changes ()
223
+
224
+ time_series_index = MyCounterIndex_AllCounters ()
225
+ index_name = time_series_index .index_name
226
+ index_definition = time_series_index .create_index_definition ()
227
+
228
+ time_series_index .execute (self .store )
229
+ self .wait_for_indexing (self .store )
230
+
231
+ terms = self .store .maintenance .send (GetTermsOperation (index_name , "heartBeat" , None ))
232
+ self .assertEqual (2 , len (terms ))
233
+ self .assertIn ("7" , terms )
234
+ self .assertIn ("3" , terms )
235
+
236
+ terms = self .store .maintenance .send (GetTermsOperation (index_name , "user" , None ))
237
+ self .assertEqual (1 , len (terms ))
238
+ self .assertIn ("companies/1" , terms )
239
+
240
+ terms = self .store .maintenance .send (GetTermsOperation (index_name , "name" , None ))
241
+ self .assertEqual (2 , len (terms ))
242
+ self .assertIn ("heartrate" , terms )
243
+ self .assertIn ("likes" , terms )
0 commit comments