我在做一个统计,统计出每天的数据,但是数据库中使用Unix时间戳保存的时间,数据库是MongoDB,高手们,用Linq应该怎么查啊!!!序号 列名 数据类型 默认值 说明
1 account String 用户账号
2 roleid Int32 角色ID
3 role_name String 角色名
4 time Int32 创建角色时间
1 account String 用户账号
2 roleid Int32 角色ID
3 role_name String 角色名
4 time Int32 创建角色时间
解决方案 »
- GridView 如何获取绑定行的数据。。。
- 如何动态添加li元素
- asp.net+oracle数据库!防止sql注入攻击
- 求救啊。在线等。老大们帮帮
- 在线急等 关于日期获得
- 各位高手请教:关于datalist控件嵌套_传递数据
- 请问怎么实现这个功能啊,这个论坛的左边的frame是TreeView,右边的frame是页面.当单击TreeView的一个节点就显示相应的面面啊?还有个问题是,我的页面咋不支持frame,母版页上也不支持,但是支持iframe,即使支持了,浏览器也不显示
- 怎么获取word文档的页数啊
- 用窗体级身份验证可否实现权限划分
- 怎样把我的数据放到客户端?
- 求显示留言代码
- gridview 隐藏列操作
DateTime startDate = DateTime.Now.AddDays(-7).Date;
DateTime endDate = DateTime.Now.Date; MongoDBHelper mo = new MongoDBHelper(sid);
MongoDatabase db = mo.GetDatabase(MongoDBHelper.dbName1);
var clist = mo.GetAll<create_role>(db, "create_role");
var clis = from p in clist
group p by ConvertDate.ConvertIntDateTime(p.time).ToShortDateString() into g
select new { g.Key, sum = g.Sum(tt => tt.roleid) };
foreach (var cli in clis)
{
string s = cli.sum.ToString();
}
看上去感觉效率没啥分别,前面都一样啊.我是这样理解的……1, var list = mo.GetAll<sign_in_out>();
2, var list = mo.GetAll<sign_in_out>().Count();
3, var list = mo.GetAll<sign_in_out>().Skip(1).Take(1);100分啊,总得有人拿走啊
1, var list = mo.GetAll<sign_in_out>();
2, var list = mo.GetAll<sign_in_out>().Count();
3, var list = mo.GetAll<sign_in_out>().Skip(1).Take(1);
你这获得的匿名集合结果都不一样,效率是不一样的
我还以为linq不兼容非关系型数据库。时间戳是一个相对时间,用数字表达。“每天”这个概念就是一个时间戳的区间而已,group by 的时候,时间戳的尾巴若干位是无用的。比如 5758697930000-- 57586979389089 表示 2012-08-29 00:00:00 到 2012-08-29 23:59:59
那么可见只有 575869793 是有用的,
时间戳除以 N 去整数 ,可以group by出“每天”这个概念
如果已经转成LIST集合了是可以用TOSTRING的。 你现在的集合和数据库已没关系了存在内存中。
2,3返回类型时IEnumerabl
效率区别明显,2,3没有使用延迟查询