From bca4a2b618e43e6c0c4f002599f5abb67f742845 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sat, 21 Jun 2025 09:45:10 +0800 Subject: [PATCH] Update mongodb --- .../MongoDbTest/UnitTest/QuerySelect.cs | 7 +++++++ .../VisitorItems/MethodCallExpressionTractor.cs | 17 +++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Src/Asp.NetCore2/MongoDbTest/UnitTest/QuerySelect.cs b/Src/Asp.NetCore2/MongoDbTest/UnitTest/QuerySelect.cs index f2faefcdd..84d7dc3ef 100644 --- a/Src/Asp.NetCore2/MongoDbTest/UnitTest/QuerySelect.cs +++ b/Src/Asp.NetCore2/MongoDbTest/UnitTest/QuerySelect.cs @@ -155,6 +155,13 @@ namespace MongoDbTest name=SqlFunc.AggregateMin(it.Name), age=it.Age }).ToList(); + + var list17 = db.Queryable() + .Select(it => new + { + name2=it.Name, + name = it.Name.Substring(0,1), + }).ToList(); } [SqlSugar.SugarTable("UnitStudent1231sds3z1")] public class Student : MongoDbBase diff --git a/Src/Asp.NetCore2/SqlSugar.MongoDbCore/ExpToSql/VisitorItems/MethodCallExpressionTractor.cs b/Src/Asp.NetCore2/SqlSugar.MongoDbCore/ExpToSql/VisitorItems/MethodCallExpressionTractor.cs index a1ee4e9c3..b7b3f0cc0 100644 --- a/Src/Asp.NetCore2/SqlSugar.MongoDbCore/ExpToSql/VisitorItems/MethodCallExpressionTractor.cs +++ b/Src/Asp.NetCore2/SqlSugar.MongoDbCore/ExpToSql/VisitorItems/MethodCallExpressionTractor.cs @@ -49,10 +49,23 @@ namespace SqlSugar.MongoDb var value = context.GetType().GetMethod(name).Invoke(context, new object[] { model }); result = BsonDocument.Parse(value?.ToString()); } + else if (name.StartsWith("Aggregate")) + { + var value = context.GetType().GetMethod(name).Invoke(context, new object[] { model }); + result = UtilMethods.MyCreate(value?.ToString()); + } else { - var funcString = context.GetType().GetMethod(name).Invoke(context, new object[] { model }); - result = UtilMethods.MyCreate(funcString); + var methodInfo = context.GetType().GetMethod(name); + var funcString = methodInfo.Invoke(context, new object[] { model }); + if (new string[] { "Contains", "StartsWith", "EndsWith" }.Contains(name)) + { + result = UtilMethods.MyCreate(funcString?.ToString()); + } + else + { + result = BsonDocument.Parse(funcString?.ToString()); + } } } else if (name.StartsWith("Add"))