@@ -13,6 +13,14 @@ def __init__(self):
1313 ]
1414
1515
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+
1624class MyMultiMapCounterIndex (AbstractJavaScriptCountersIndexCreationTask ):
1725 class Result :
1826 def __init__ (self , heart_beat : float = None , name : str = None , user : str = None ):
@@ -204,3 +212,32 @@ def test_basic_map_index(self):
204212 terms = self .store .maintenance .send (GetTermsOperation ("MyCountersIndex" , "name" , None ))
205213 self .assertEqual (1 , len (terms ))
206214 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