Update mongodb

This commit is contained in:
sunkaixuan 2025-06-21 13:50:04 +08:00
parent fb405063f8
commit ccd96f4500
3 changed files with 40 additions and 11 deletions

View File

@ -171,6 +171,24 @@ namespace MongoDbTest
name = it.Name.Length,
}).ToList();
if(list18.Max(it=>it.name)!=2) Cases.ThrowUnitError();
var list19= db.Queryable<Student>()
.Select(it => new
{
name =string.IsNullOrEmpty(it.Name),
}).ToList();
if (list19.Max(it => it.name) != true) Cases.ThrowUnitError();
//var list20 = db.Queryable<Student>()
// .Select(it => new
// {
// name = string.IsNullOrEmpty(it.Name).ToString(),
// }).ToList();
//if (list20.Max(it => it.name) != "true") Cases.ThrowUnitError();
var list22= db.Queryable<Student>()
.Select(it=>it.Name).ToList();
if (list22.First() != "a") Cases.ThrowUnitError();
}
[SqlSugar.SugarTable("UnitStudent1231sds3z1")]
public class Student : MongoDbBase

View File

@ -1,4 +1,5 @@
using System;
using MongoDB.Bson;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq.Expressions;
@ -8,6 +9,17 @@ namespace SqlSugar.MongoDb
{
public class MongoDbExpTools
{
public static bool IsFieldNameJson(string trimmed)
{
return trimmed.StartsWith("{ \"fieldName\" : ");
}
public static bool IsFieldNameJson(BsonDocument doc)
{
if (doc.Contains("fieldName"))
return true;
return false;
}
public static string CustomToString(object value)
{
if (value == null||value==DBNull.Value)

View File

@ -64,7 +64,7 @@ namespace SqlSugar.MongoDb
trimmed = trimmed.Substring(5).TrimStart();
else if (trimmed.StartsWith("AND", StringComparison.OrdinalIgnoreCase))
trimmed = trimmed.Substring(3).TrimStart();
if (IsFieldNameJson(trimmed))
if (MongoDbExpTools.IsFieldNameJson(trimmed))
{
var outerDoc = BsonDocument.Parse(trimmed);
trimmed = outerDoc["fieldName"].AsString;
@ -135,6 +135,11 @@ namespace SqlSugar.MongoDb
resolveType=ResolveExpressType.SelectSingle,
queryBuilder=this
});
if (MongoDbExpTools.IsFieldNameJson(dos))
{
dos["fieldName"] = "$"+ dos["fieldName"];
dos.Add(new BsonElement("_id", "0"));
}
var json = dos.ToJson(UtilMethods.GetJsonWriterSettings());
operations.Add($"{{\"$project\": {json} }}");
}
@ -201,12 +206,6 @@ namespace SqlSugar.MongoDb
return sb.ToString();
}
private bool IsFieldNameJson(string trimmed)
{
return trimmed.StartsWith("{ \"fieldName\" : ");
}
public override string ToCountSql(string sql)
{
sql=sql.TrimEnd(']');