mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-06-28 13:34:32 +08:00
Update mongodb
This commit is contained in:
parent
fb405063f8
commit
ccd96f4500
@ -170,7 +170,25 @@ namespace MongoDbTest
|
|||||||
{
|
{
|
||||||
name = it.Name.Length,
|
name = it.Name.Length,
|
||||||
}).ToList();
|
}).ToList();
|
||||||
if(list18.Max(it=>it.name)!=2) Cases.ThrowUnitError();
|
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")]
|
[SqlSugar.SugarTable("UnitStudent1231sds3z1")]
|
||||||
public class Student : MongoDbBase
|
public class Student : MongoDbBase
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using MongoDB.Bson;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
@ -7,7 +8,18 @@ using System.Text;
|
|||||||
namespace SqlSugar.MongoDb
|
namespace SqlSugar.MongoDb
|
||||||
{
|
{
|
||||||
public class MongoDbExpTools
|
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)
|
public static string CustomToString(object value)
|
||||||
{
|
{
|
||||||
if (value == null||value==DBNull.Value)
|
if (value == null||value==DBNull.Value)
|
||||||
|
@ -64,7 +64,7 @@ namespace SqlSugar.MongoDb
|
|||||||
trimmed = trimmed.Substring(5).TrimStart();
|
trimmed = trimmed.Substring(5).TrimStart();
|
||||||
else if (trimmed.StartsWith("AND", StringComparison.OrdinalIgnoreCase))
|
else if (trimmed.StartsWith("AND", StringComparison.OrdinalIgnoreCase))
|
||||||
trimmed = trimmed.Substring(3).TrimStart();
|
trimmed = trimmed.Substring(3).TrimStart();
|
||||||
if (IsFieldNameJson(trimmed))
|
if (MongoDbExpTools.IsFieldNameJson(trimmed))
|
||||||
{
|
{
|
||||||
var outerDoc = BsonDocument.Parse(trimmed);
|
var outerDoc = BsonDocument.Parse(trimmed);
|
||||||
trimmed = outerDoc["fieldName"].AsString;
|
trimmed = outerDoc["fieldName"].AsString;
|
||||||
@ -135,6 +135,11 @@ namespace SqlSugar.MongoDb
|
|||||||
resolveType=ResolveExpressType.SelectSingle,
|
resolveType=ResolveExpressType.SelectSingle,
|
||||||
queryBuilder=this
|
queryBuilder=this
|
||||||
});
|
});
|
||||||
|
if (MongoDbExpTools.IsFieldNameJson(dos))
|
||||||
|
{
|
||||||
|
dos["fieldName"] = "$"+ dos["fieldName"];
|
||||||
|
dos.Add(new BsonElement("_id", "0"));
|
||||||
|
}
|
||||||
var json = dos.ToJson(UtilMethods.GetJsonWriterSettings());
|
var json = dos.ToJson(UtilMethods.GetJsonWriterSettings());
|
||||||
operations.Add($"{{\"$project\": {json} }}");
|
operations.Add($"{{\"$project\": {json} }}");
|
||||||
}
|
}
|
||||||
@ -200,13 +205,7 @@ namespace SqlSugar.MongoDb
|
|||||||
sb.Append("]");
|
sb.Append("]");
|
||||||
|
|
||||||
return sb.ToString();
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool IsFieldNameJson(string trimmed)
|
|
||||||
{
|
|
||||||
return trimmed.StartsWith("{ \"fieldName\" : ");
|
|
||||||
}
|
|
||||||
|
|
||||||
public override string ToCountSql(string sql)
|
public override string ToCountSql(string sql)
|
||||||
{
|
{
|
||||||
sql=sql.TrimEnd(']');
|
sql=sql.TrimEnd(']');
|
||||||
|
Loading…
Reference in New Issue
Block a user