Update mongodb

This commit is contained in:
sunkaixuan
2025-07-08 16:08:04 +08:00
parent 43ebc310cf
commit 245434f182
2 changed files with 16 additions and 5 deletions

View File

@@ -111,6 +111,7 @@ namespace MongoDbTest
if (x3.Count != x2.Count) Cases.ThrowUnitError();
if (x3.First().Id != x2.First().Id) Cases.ThrowUnitError();
if (x3.First().Bool!=true) Cases.ThrowUnitError();
var x4 = db.Queryable<Student>().Where(it => it.Bool&&it.Bool).ToList();
}
[SqlSugar.SugarTable("UnitStudent1ssss23s131")]

View File

@@ -11,9 +11,10 @@ namespace SqlSugar.MongoDb
private BsonDocument LogicalBinaryExpression(BinaryExpression expr)
{
string logicOp = expr.NodeType == ExpressionType.AndAlso ? "$and" : "$or";
var left = new ExpressionVisitor(_context).Visit(expr.Left);
var right = new ExpressionVisitor(_context).Visit(expr.Right);
var leftExp = AdjustExpression(expr.Left);
var left = new ExpressionVisitor(_context).Visit(leftExp);
var rightExp = AdjustExpression(expr.Right);
var right = new ExpressionVisitor(_context).Visit(rightExp);
var isJoinByExp=base.IsJoinByExp(_context);
if (isJoinByExp)
{
@@ -33,6 +34,15 @@ namespace SqlSugar.MongoDb
return new BsonDocument { { logicOp, arr } };
}
private static Expression AdjustExpression(Expression exp)
{
if (exp is MemberExpression m && m.Type == UtilConstants.BoolType && ExpressionTool.GetParameters(exp).Count > 0)
{
exp = Expression.Equal(exp, Expression.Constant(true, typeof(bool)));
}
return exp;
}
private void AddNestedLogic(BsonArray arr, BsonValue token, string logicOp)
{
if (token is BsonDocument obj && obj.Contains(logicOp))