MongoDB监控查询命令、linq联合查询

            // 创建 MongoClientSettings 对象
            var settings = MongoClientSettings.FromConnectionString("mongodb://192.168.11.137:27017");


            // 将 CommandLogger 设置为 MongoClientSettings 的 CommandLogger 属性
            settings.ClusterConfigurator = cb => {
                cb.Subscribe<CommandStartedEvent>(e =>
                {
                   var cmd = e.Command.ToString();
                });
            };

            var client = new MongoClient(settings);

            var database = client.GetDatabase("MyTestDB");
            var userinfos = database.GetCollection<UserInfo>("UserInfo").AsQueryable();
 
            var ages = database.GetCollection<UserAge>("UserAges").AsQueryable();
            var ageinfos = database.GetCollection<AgeInfo>("AgeInfos").AsQueryable();

            var user = (from m in userinfos
                         join a in ages on m.Id equals a.UserId into aGroup
                        from a2 in aGroup.DefaultIfEmpty()
                        join b in ageinfos on a2.Id equals b.AgeId into  bGroup
                        from b2 in bGroup.DefaultIfEmpty()
                        select new
                        {
                            Name = m.Name,
                            Time = b2.CreateTime,
                            Age = a2.Age
                        }).FirstOrDefault();
posted @ 2023-07-03 15:02  IWing  阅读(41)  评论(0)    收藏  举报