C# MongoDB 查询,分组,聚合,排序,条件,分页
时间:2021-07-14
本文章向大家介绍C# MongoDB 查询,分组,聚合,排序,条件,分页,主要包括C# MongoDB 查询,分组,聚合,排序,条件,分页使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
using MongoDB.Driver; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using MySteel.Common.Helper; using MongoDB.Driver.Builders; using MongoDB.Bson.Serialization.Attributes; using MongoDB.Bson; namespace Test.MongoDB { class Program { /// <summary> /// 数据库连接 /// </summary> private const string conn = "mongodb://192.168.200.184:27017"; /// <summary> /// 指定的数据库 /// </summary> private const string dbName = "mlog"; /// <summary> /// 指定的表 /// </summary> private const string tbName = "log_table"; //创建数据连接 private static MongoServer server = MongoServer.Create(conn); //获取指定数据库 private static MongoDatabase db = server.GetDatabase(dbName); static void Main(string[] args) { //for (var index = 0; index < 2; index++) //{ // Student stu = new Student(); // stu.Name = "name" + index; // stu.Age = index; // stu.CreateDateTime = DateTime.Now.ToMillisecond(); // stu.Ques = new List<Ques>(); // stu.Ques.Add(new Ques() { Name = "qname" + index }); // Add(stu); //} Console.WriteLine("获取学生数据列表"); var list = GetStudentList(); foreach (var item in list) { Console.WriteLine(item.Name + " " + item.Age); } Console.WriteLine("获取学生姓名分组和数量"); Dictionary<string, int> group = GetStudentGroup(); foreach (var item in group) { Console.WriteLine(item.Key + " " + item.Value); } Console.Read(); } /// <summary> /// 添加 /// </summary> /// <param name="text">内容</param> /// <param name="articleId">文章ID</param> /// <param name="channelId">频道ID</param> /// <returns></returns> public static void Add(Student t) { //获取表 MongoCollection col = db.GetCollection(tbName); //插入 col.Insert(t); } public static List<Student> GetStudentList() { //创建数据连接 MongoServer server = MongoServer.Create(conn); //获取指定数据库 MongoDatabase db = server.GetDatabase(dbName); //获取表 MongoCollection<Student> col = db.GetCollection<Student>(tbName); //条件查询 var query = Query.And(Query.LTE("Age", 5)); MongoCursor<Student> mongoCursor = col.FindAs<Student>(query); //总数 Console.WriteLine(mongoCursor.Count()); mongoCursor = col.FindAs<Student>(query); //排序 mongoCursor.SetSortOrder(SortBy.Descending("Age")); //分页 mongoCursor.SetSkip(2); mongoCursor.SetLimit(2); List<Student> result = mongoCursor.ToList(); return result; } public static Dictionary<string, int> GetStudentGroup() { Dictionary<string, int> result = new Dictionary<string, int>(); result["num"] = 0; //创建数据连接 MongoServer server = MongoServer.Create(conn); //获取指定数据库 MongoDatabase db = server.GetDatabase(dbName); //获取表 MongoCollection<Student> col = db.GetCollection<Student>(tbName); GroupByBuilder groupbyBuilder = new GroupByBuilder(new string[] { "Name" }); var query = Query.And(Query.LTE("Age", 5)); var result_R = col.Group(query, groupbyBuilder, BsonDocument.Create(result), BsonJavaScript.Create("function(doc,prev){prev.num++;}"), BsonJavaScript.Create("function(doc){ doc.count=doc.num;delete doc.num; }")).ToList(); if (result_R.Count != 0) { result = new Dictionary<string, int>(); for (int i = 1; i < result_R.Count; i++) { result.Add(result_R[i]["Name"].ToString(), Convert.ToInt32(result_R[i]["count"])); } } return result; } } [BsonIgnoreExtraElements] public class Student { public string Name { get; set; } public int Age { get; set; } public List<Ques> Ques { get; set; } public long CreateDateTime { get; set; } } [BsonIgnoreExtraElements] public class Ques { public string Name { get; set; } } }
原文地址:https://www.cnblogs.com/nifengqibi/p/15010222.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法