diff --git a/Src/Asp.NetCore2/MongoDbTest/UnitTest/QueryJsonArray.cs b/Src/Asp.NetCore2/MongoDbTest/UnitTest/QueryJsonArray.cs index acfe6b5ac..b43d9fc7e 100644 --- a/Src/Asp.NetCore2/MongoDbTest/UnitTest/QueryJsonArray.cs +++ b/Src/Asp.NetCore2/MongoDbTest/UnitTest/QueryJsonArray.cs @@ -1,4 +1,5 @@ -using SqlSugar.MongoDb; +using SqlSugar; +using SqlSugar.MongoDb; using System; using System.Collections.Generic; using System.Linq; @@ -22,6 +23,8 @@ namespace MongoDbTest db.Updateable(data1).ExecuteCommand(); var data2 = db.Queryable().ToList(); if (data2.First().Book.First().Price != 100) Cases.ThrowUnitError(); + var exp=Expressionable.Create().ToExpression(); + var data3 = db.Queryable().Where(exp).ToList(); } [SqlSugar.SugarTable("UnitStudentdfsds3zzz1")] diff --git a/Src/Asp.NetCore2/SqlSugar.MongoDbCore/ExpToSql/MongoNestedTranslator.cs b/Src/Asp.NetCore2/SqlSugar.MongoDbCore/ExpToSql/MongoNestedTranslator.cs index 86d52da00..2369547b0 100644 --- a/Src/Asp.NetCore2/SqlSugar.MongoDbCore/ExpToSql/MongoNestedTranslator.cs +++ b/Src/Asp.NetCore2/SqlSugar.MongoDbCore/ExpToSql/MongoNestedTranslator.cs @@ -16,11 +16,31 @@ namespace SqlSugar.MongoDb public static BsonDocument Translate(Expression expr, MongoNestedTranslatorContext context) { var result = new ExpressionVisitor(context).Visit(expr); - if (result is BsonString bs) - { - result = new BsonDocument(UtilConstants.FieldName, bs); - } + if (result is BsonString bs) + result = TranslateStringToBson(bs); + else if (result is BsonBoolean bb) + result = TranslateBooleanToBson(bb); return (BsonDocument)result; } + + private static BsonValue TranslateStringToBson(BsonString bs) + { + return new BsonDocument(UtilConstants.FieldName, bs); + } + + private static BsonValue TranslateBooleanToBson(BsonBoolean bb) + { + BsonValue result; + if (bb == true) + { + result = new BsonDocument("$expr", new BsonDocument("$eq", new BsonArray { 1, 1 })); + } + else + { + result = new BsonDocument("$expr", new BsonDocument("$eq", new BsonArray { 1, 0 })); + } + + return result; + } } }