From 982b7d0f8b65dc667473e66f43d08e436acfe227 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Thu, 1 May 2025 17:27:12 +0800 Subject: [PATCH] Update mongodb --- .../MongoDb.Ado.data/MongoDbCommand.cs | 19 ++++-- Src/Asp.NetCore2/MongoDbTest/AdoTest.cs | 68 ++++++++++++++++++- 2 files changed, 79 insertions(+), 8 deletions(-) diff --git a/Src/Asp.NetCore2/MongoDb.Ado.data/MongoDbCommand.cs b/Src/Asp.NetCore2/MongoDb.Ado.data/MongoDbCommand.cs index fa5f7945c..ccc1c0e19 100644 --- a/Src/Asp.NetCore2/MongoDb.Ado.data/MongoDbCommand.cs +++ b/Src/Asp.NetCore2/MongoDb.Ado.data/MongoDbCommand.cs @@ -86,14 +86,19 @@ namespace MongoDb.Ado.data if (operation == "updatemany") { - // 处理更新多个文档操作 - var updateCommand = BsonDocument.Parse(json); - var filter = updateCommand["filter"].AsBsonDocument; - var update = updateCommand["update"].AsBsonDocument; - var options = updateCommand.Contains("options") ? updateCommand["options"].AsBsonDocument : null; + var totals = 0; + // 处理插入多条记录操作 + var documents = BsonSerializer.Deserialize>(json); // 假设 json 是包含多个文档的数组 + foreach (var updateCommand in documents) + { + var filter = updateCommand["filter"].AsBsonDocument; + var update = updateCommand["update"].AsBsonDocument; + var options = updateCommand.Contains("options") ? updateCommand["options"].AsBsonDocument : null; - var updateResult = collection.UpdateMany(filter, update); // 多个更新 - return (int)updateResult.ModifiedCount; // 返回修改的文档数 + var updateResult = collection.UpdateOne(filter, update); // 单个更新 + totals+=(int)updateResult.ModifiedCount; // 返回修改的文档数 + } + return documents.Count; // 返回插入成功的文档数 } if (operation == "delete") diff --git a/Src/Asp.NetCore2/MongoDbTest/AdoTest.cs b/Src/Asp.NetCore2/MongoDbTest/AdoTest.cs index 9723fa137..2bfd98721 100644 --- a/Src/Asp.NetCore2/MongoDbTest/AdoTest.cs +++ b/Src/Asp.NetCore2/MongoDbTest/AdoTest.cs @@ -44,7 +44,17 @@ namespace MongoDbTest var value=mongoDbCommand.ExecuteScalar(); connection.Close(); } - //ExecuteNonQuery + //ExecuteNonQuery insert + { + var connection = new MongoDbConnection(DbHelper.SqlSugarConnectionString); + connection.Open(); + MongoDbCommand mongoDbCommand = new MongoDbCommand( + "insert b { name: \"John\", age: 31 }", + connection); + var value = mongoDbCommand.ExecuteNonQuery(); + connection.Close(); + } + //ExecuteNonQuery insertMany { var connection = new MongoDbConnection(DbHelper.SqlSugarConnectionString); connection.Open(); @@ -52,6 +62,62 @@ namespace MongoDbTest var value = mongoDbCommand.ExecuteNonQuery(); connection.Close(); } + //ExecuteNonQuery update + { + var connection = new MongoDbConnection(DbHelper.SqlSugarConnectionString); + connection.Open(); + MongoDbCommand mongoDbCommand = new MongoDbCommand( + @"update b { + ""filter"": { ""name"": ""John"" }, + ""update"": { ""$set"": { ""age"": 32 } } + }", + connection); + var value = mongoDbCommand.ExecuteNonQuery(); + connection.Close(); + } + //ExecuteNonQuery updateMany + { + var connection = new MongoDbConnection(DbHelper.SqlSugarConnectionString); + connection.Open(); + MongoDbCommand mongoDbCommand = new MongoDbCommand( + @"updateMany b [{ + ""filter"": { ""name"": ""John"" }, + ""update"": { ""$set"": { ""age"": 32 } } + }]", + connection); + var value = mongoDbCommand.ExecuteNonQuery(); + connection.Close(); + } + //ExecuteNonQuery delete + { + var connection = new MongoDbConnection(DbHelper.SqlSugarConnectionString); + connection.Open(); + MongoDbCommand mongoDbCommand = new MongoDbCommand( + "delete b { name: \"John\" }", + connection); + var value = mongoDbCommand.ExecuteNonQuery(); + connection.Close(); + } + //ExecuteNonQuery delete + { + var connection = new MongoDbConnection(DbHelper.SqlSugarConnectionString); + connection.Open(); + MongoDbCommand mongoDbCommand = new MongoDbCommand( + "delete b { name: \"John\" }", + connection); + var value = mongoDbCommand.ExecuteNonQuery(); + connection.Close(); + } + //ExecuteNonQuery deleteMany + { + var connection = new MongoDbConnection(DbHelper.SqlSugarConnectionString); + connection.Open(); + MongoDbCommand mongoDbCommand = new MongoDbCommand( + "deleteMany b { age: { $lt: 30 } }", + connection); + var value = mongoDbCommand.ExecuteNonQuery(); + connection.Close(); + } } private static void MongoDbConnectionTest()