// parameters: // max 返回最多多少个元素。如果为 -1,表示不限制 // hit_count 返回命中总数。是命中的整个集合的数量,除去 start 以后的值 public List <ValueCount> ListDates(int start, int max, out int hit_count) { hit_count = 0; IMongoCollection <AccessLogItem> collection = this.LogCollection; if (collection == null) { return(null); } #if NO BasicDBObject key = new BasicDBObject(); 14.key.put("name", "true"); 15.BasicDBObject initial = new BasicDBObject(); 16.initial.put("count", 0); 17.BasicDBObject condition = new BasicDBObject(); 18.// condition.put("name", "liguohui"); 19.String reduceString = "function(obj,prev) { prev.count++; }"; 20.DBObject dbo = coll.group(key, condition, initial, reduceString); #endif var document = new BsonDocument("count", 0); var keyFunction = (BsonJavaScript) @"function(doc) { var date = new Date(doc.OperTime); var dateKey = date.toISOString().slice(0, 10); return {'day':dateKey}; }"; // var dateKey = date.getFullYear()+'|'+(date.getMonth()+1)+'|'+date.getDate(); var result = collection.Group( Query.Null, keyFunction, document, new BsonJavaScript("function(doc, out){ out.count++; }"), null ).Skip <BsonDocument>(start); List <ValueCount> values = new List <ValueCount>(); int nCount = 0; foreach (BsonDocument doc in result) { ValueCount item = new ValueCount(); item.Value = doc.GetValue("day", "").ToString().Replace("-", ""); item.Count = doc.GetValue("count", 0).ToInt32(); values.Add(item); nCount++; if (max != -1 && nCount >= max) { break; } } hit_count = result.Count <BsonDocument>(); return(values); }
public DBObject getMetaData() { if (_metadata == null) _metadata = new BasicDBObject(); return _metadata; }
// parameters: // max 返回最多多少个元素。如果为 -1,表示不限制 // hit_count 返回命中总数。是命中的整个集合的数量,除去 start 以后的值 public List<ValueCount> ListDates(int start, int max, out int hit_count) { hit_count = 0; MongoCollection<AccessLogItem> collection = this.LogCollection; if (collection == null) return null; #if NO BasicDBObject key = new BasicDBObject(); 14.key.put("name", "true"); 15.BasicDBObject initial = new BasicDBObject(); 16.initial.put("count", 0); 17.BasicDBObject condition = new BasicDBObject(); 18.// condition.put("name", "liguohui"); 19.String reduceString = "function(obj,prev) { prev.count++; }"; 20.DBObject dbo = coll.group(key, condition , initial, reduceString); #endif var document = new BsonDocument("count", 0); var keyFunction = (BsonJavaScript)@"function(doc) { var date = new Date(doc.OperTime); var dateKey = date.toISOString().slice(0, 10); return {'day':dateKey}; }"; // var dateKey = date.getFullYear()+'|'+(date.getMonth()+1)+'|'+date.getDate(); var result = collection.Group( Query.Null, keyFunction, document, new BsonJavaScript("function(doc, out){ out.count++; }"), null ).Skip<BsonDocument>(start); List<ValueCount> values = new List<ValueCount>(); int nCount = 0; foreach (BsonDocument doc in result) { ValueCount item = new ValueCount(); item.Value = doc.GetValue("day", "").ToString().Replace("-", ""); item.Count = doc.GetValue("count", 0).ToInt32(); values.Add(item); nCount++; if (max != -1 && nCount >= max) break; } hit_count = result.Count<BsonDocument>(); return values; }