mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-05-15 20:49:31 +08:00
Update mongodb
This commit is contained in:
parent
b405431cab
commit
9858f32706
@ -23,19 +23,18 @@ namespace MongoDbTest
|
||||
|
||||
var updateRow = db.Updateable(new List<OrderInfo>()
|
||||
{
|
||||
new OrderInfo() { Id = ids.First(),Name="a3"},
|
||||
new OrderInfo() { Id = ids.First(),Name="a3",Price=11},
|
||||
new OrderInfo() { Id = ids.Last(),Name="a4"}
|
||||
})
|
||||
.ExecuteCommand();
|
||||
|
||||
var delrow = db.Deleteable(new OrderInfo() { Id = ids.Last() })
|
||||
.ExecuteCommand();
|
||||
|
||||
|
||||
|
||||
var list2 = db.Queryable<OrderInfo>().ToList();
|
||||
.ExecuteCommand();
|
||||
|
||||
var list = db.Queryable<OrderInfo>().ToDataTable();
|
||||
|
||||
var list2 = db.Queryable<OrderInfo>().Where(it=>it.Name=="a3"&&it.Price==11).ToList();
|
||||
|
||||
//测试生成SQL性能
|
||||
TestSqlBuilder(db);
|
||||
}
|
||||
|
@ -6,5 +6,7 @@ namespace SqlSugar.MongoDbCore
|
||||
{
|
||||
public class MongoNestedTranslatorContext
|
||||
{
|
||||
public ResolveExpressType resolveType { get; internal set; }
|
||||
public SqlSugarProvider context { get; internal set; }
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using SqlSugar.MongoDbCore;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Linq.Expressions;
|
||||
namespace SqlSugar.MongoDb
|
||||
@ -7,7 +8,11 @@ namespace SqlSugar.MongoDb
|
||||
{
|
||||
public new void Resolve(Expression expression, ResolveExpressType resolveType)
|
||||
{
|
||||
|
||||
var context = new MongoNestedTranslatorContext();
|
||||
context.resolveType = resolveType;
|
||||
context.context = this.Context;
|
||||
var sql=MongoNestedTranslator.Translate(expression, context);
|
||||
this.Result.Append(sql);
|
||||
}
|
||||
|
||||
public SqlSugarProvider Context { get; set; }
|
||||
|
@ -1,4 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.Json.Nodes;
|
||||
@ -50,6 +51,19 @@ namespace SqlSugar.MongoDb
|
||||
{
|
||||
List<string> operations = new List<string>();
|
||||
var sb = new StringBuilder();
|
||||
|
||||
foreach (var item in this.WhereInfos)
|
||||
{
|
||||
// 去除开头的 WHERE 或 AND(忽略大小写和空格)
|
||||
string trimmed = item.TrimStart();
|
||||
if (trimmed.StartsWith("WHERE", StringComparison.OrdinalIgnoreCase))
|
||||
trimmed = trimmed.Substring(5).TrimStart();
|
||||
else if (trimmed.StartsWith("AND", StringComparison.OrdinalIgnoreCase))
|
||||
trimmed = trimmed.Substring(3).TrimStart();
|
||||
// item 是 JSON 格式字符串,直接包进 $match
|
||||
operations.Add($"{{ \"$match\": {trimmed} }}");
|
||||
}
|
||||
|
||||
sb.Append($"aggregate {this.GetTableNameString} ");
|
||||
sb.Append("[");
|
||||
sb.Append(string.Join(", ", operations));
|
||||
|
Loading…
Reference in New Issue
Block a user