mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-20 00:44:19 +08:00
Update mognodb
This commit is contained in:
parent
0881317ca9
commit
537779f569
@ -134,7 +134,30 @@ namespace SqlSugar.MongoDb
|
|||||||
{
|
{
|
||||||
return ProcessAnyExpression(methodCallExpression);
|
return ProcessAnyExpression(methodCallExpression);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (IsAnyMethodCallEmpty(methodCallExpression, name))
|
||||||
|
{
|
||||||
|
// 处理 it.xx.Any(),即判断 JSON 数组字段是否非空
|
||||||
|
var memberExpression = methodCallExpression.Arguments.FirstOrDefault() as MemberExpression;
|
||||||
|
if (memberExpression != null)
|
||||||
|
{
|
||||||
|
// 获取集合字段名
|
||||||
|
var collectionField = MongoNestedTranslator.TranslateNoFieldName(
|
||||||
|
memberExpression,
|
||||||
|
_context,
|
||||||
|
new ExpressionVisitorContext { IsText = true }
|
||||||
|
);
|
||||||
|
|
||||||
|
// 构造 $size > 0 查询
|
||||||
|
var bson = new BsonDocument
|
||||||
|
{
|
||||||
|
{ "$expr", new BsonDocument("$gt", new BsonArray { new BsonDocument("$size", UtilMethods.GetMemberName(collectionField)), 0 }) }
|
||||||
|
};
|
||||||
|
result = bson;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -431,7 +454,11 @@ namespace SqlSugar.MongoDb
|
|||||||
{
|
{
|
||||||
return name == "Any" && methodCallExpression.Arguments.Count == 2;
|
return name == "Any" && methodCallExpression.Arguments.Count == 2;
|
||||||
}
|
}
|
||||||
|
private static bool IsAnyMethodCallEmpty(MethodCallExpression methodCallExpression, string name)
|
||||||
|
{
|
||||||
|
return name == "Any" && methodCallExpression.Arguments.Count ==1;
|
||||||
|
}
|
||||||
|
|
||||||
private static bool IsCountJson(MethodCallExpression methodCallExpression, string name)
|
private static bool IsCountJson(MethodCallExpression methodCallExpression, string name)
|
||||||
{
|
{
|
||||||
return name == "Count" && methodCallExpression?.Arguments?.FirstOrDefault() is MemberExpression m;
|
return name == "Count" && methodCallExpression?.Arguments?.FirstOrDefault() is MemberExpression m;
|
||||||
|
Loading…
Reference in New Issue
Block a user