Update mongodb

This commit is contained in:
sunkaixuan
2025-06-19 16:36:00 +08:00
parent 8a0c1a3147
commit 84d91cdcf5
4 changed files with 24 additions and 3 deletions

View File

@@ -27,7 +27,15 @@ namespace SqlSugar.MongoDb
public BsonValue Visit(Expression expr)
{
expr = MongoDbExpTools.RemoveConvert(expr);
if (expr.NodeType == ExpressionType.Negate)
{
expr=(expr as UnaryExpression).Operand;
var value=new ExpressionVisitor(context,visitorContext).Visit(expr);
var isMemember = MongoDbExpTools.GetIsMemember(expr);
if (isMemember)
value = $"${value}";
return new BsonDocument("$multiply", new BsonArray { -1, value });
}
switch (expr)
{
case BinaryExpression binary:
@@ -51,6 +59,6 @@ namespace SqlSugar.MongoDb
default:
throw new NotSupportedException($"Unsupported expression: {expr.NodeType}");
}
}
}
}
}

View File

@@ -73,6 +73,11 @@ namespace SqlSugar.MongoDb
return false;
}
public static bool GetIsMemember(Expression expr)
{
return expr is MemberExpression member && member.Expression is ParameterExpression;
}
internal static Expression RemoveConvert(Expression item)
{
for (int i = 0; i < 10; i++)

View File

@@ -7,7 +7,8 @@ using System.Text;
namespace SqlSugar.MongoDb
{
public partial class BinaryExpressionTranslator
{
{
private static bool IsEq(string op)
{
return op == "$eq";