.net C# MongoDB数据查询、聚合查询、数据展开、多条件查询、排序

由于MongoDB的相关内容实在是太难查了,拼拼凑凑的自己统计一些吧。
首先是关于MongoDB的引用,这两个是主要的引用其他的看自己需求去增加

using MongoDB.Driver;
using MongoDB.Bson;

下面直接代码吧,说多了都无用,BsonDocument里面的基本上都是由MongoDB里面的语句转换过来的。

//MongoDB数据库连接字符串,这个哪里都能查到
        static string momgoctr = "mongodb://user:password@ip/Database?replicaSet=mySet&authSource=admin";
        [Obsolete]
        static void Main(string[] args)
        {
            string strCon = momgoctr; 

            var mongoUrl = new MongoUrlBuilder(strCon);
            // 获取数据库名称
            string databaseName = mongoUrl.DatabaseName;

            var client = new MongoClient(mongoUrl.ToMongoUrl());

            // 定义要查询的集合名称
            const string collectionName = "表名";//
            var database = client.GetDatabase(databaseName);
            //确定访问哪张表Pet是实体类可变的
            var collection = database.GetCollection<BsonDocument>(collectionName);

            var pipeline = new BsonDocument[]
            {
            //数据展开
                new BsonDocument("$unwind", new BsonDocument
                {

                    { "字段", "$值" }, // 连接的集合名称
                    { "preserveNullAndEmptyArrays", true }

                }),
                // 投影出返回结果需要的字段
                new BsonDocument("$project", new BsonDocument
                {
                    { "字段1", "$数值1" },
                    { "字段2", "$数值2" },
                    { "字段3", "$数值3" },
                    { "字段4", "$数值4" }
                }),
                  new BsonDocument("$match", new BsonDocument
                {
					//可以写多个条件
                    { "$条件,大于等于那一类的", new BsonArray{ new BsonDocument{ "","" } },

                }),
                new BsonDocument("$sort",new BsonDocument
                {
                    { "字段1" , 1},
                    { "字段2" , -1}
                })
            };
			//这个地方转换成自己的model就可以了
            var result = collection.Aggregate<TModel>(pipeline).ToList();
            Console.ReadKey();
        }

其他的就不一 一举例基本上MongoDB语句在这里面都可以直接写,就是括号套起来麻烦点,需要注意的就是查出来数据的格式。这种写法对于需要聚合查询的很契合,但如果是单表查询,推荐我另一个文章里面的方式,非常好用。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值