程序笔记   发布时间:2022-07-18  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了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 @R_197_10495@ng conn = "mongodb://192.168.200.184:27017";
        /// <sumMary>
        /// 指定的数据库
        /// </sumMary>
        private const @R_197_10495@ng dbname = "mlog";
        /// <sumMary>
        /// 指定的表
        /// </sumMary>
        private const @R_197_10495@ng tbName = "log_table";
        //创建数据连接
        private static MongoServer server = MongoServer.Create(conn);
        //获取指定数据库
        private static MongoDatabase db = server.GetDatabase(dbName);

        static void Main(@R_197_10495@ng[] args)
        {
            //for (var index = 0; index < 2; index++)
            //{
            //    student stu = new student();
            //    stu.Name = "name" + index;
            //    stu.Age = index;
            //    stu.CreatedatetiR_108_11845@e = datetiR_108_11845@e.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<@R_197_10495@ng, 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<@R_197_10495@ng, int> GetstudentGroup()
        {
            Dictionary<@R_197_10495@ng, int> result = new Dictionary<@R_197_10495@ng, 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<@R_197_10495@ng, int>();
                for (int i = 1; i < result_R.Count; i++)
                {
                    result.Add(result_R[i]["Name"].To@R_197_10495@ng(), Convert.ToInt32(result_R[i]["count"]));

                }
            }
            return result;
        }
    }
    [BsonIgnoreExtraElements]
    public class student
    {
        public @R_197_10495@ng Name { get; set; }
        public int age { get; set; }
        public List<Ques> Ques { get; set; }
        public long CreatedatetiR_108_11845@e { get; set; }
    }
    [BsonIgnoreExtraElements]
    public class Ques
    {
        public @R_197_10495@ng Name { get; set; }
    }
}

大佬总结

以上是大佬教程为你收集整理的C# MongoDB 查询,分组,聚合,排序,条件,分页全部内容,希望文章能够帮你解决C# MongoDB 查询,分组,聚合,排序,条件,分页所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。