MongoDB CRUD操作
using MongoDB.Bson; using MongoDB.Driver; using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Generic { public class MongoDBDemo { // 定义接口 protected static IMongoDatabase _database; // 定义客户端 protected static IMongoClient _client; public static void GetData() { // 定义要查询的集合名称 const string collectionName = "user"; // 读取连接字符串 string strCon = ConfigurationManager.ConnectionStrings["mongodbConn"].ConnectionString; var mongoUrl = new MongoUrlBuilder(strCon); // 获取数据库名称 string databaseName = mongoUrl.DatabaseName; // 创建并实例化客户端 _client = new MongoClient(mongoUrl.ToMongoUrl()); // 根据数据库名称实例化数据库 _database = _client.GetDatabase(databaseName); // 根据集合名称获取集合 var collection = _database.GetCollection<BsonDocument>(collectionName); var filter = new BsonDocument(); // 查询集合中的文档 var list = Task.Run(async () => await collection.Find(filter).ToListAsync()).Result; // 循环遍历输出 list.ForEach(p => { Console.WriteLine("姓名:" + p["username"].ToString() + ",性别:" + p["sex"].ToString()); }); //collection.InsertOne(); Console.ReadKey(); } public void Mongo() { //建立连接 var client = new MongoClient(); //建立数据库 var database = client.GetDatabase("TestDb"); //建立collection var collection = database.GetCollection<BsonDocument>("foo"); var document = new BsonDocument { {"name","MongoDB"}, {"type","Database"}, {"count",1}, {"info",new BsonDocument{{"x",203},{"y",102}}} }; //插入数据 collection.InsertOne(document); var count = collection.CountDocuments(document); Console.WriteLine(count); //查询数据 var document1 = collection.Find(document); Console.WriteLine(document1.ToString()); //更新数据 var filter = Builders<BsonDocument>.Filter.Eq("name", "MongoDB"); var update = Builders<BsonDocument>.Update.Set("name", "Ghazi"); collection.UpdateMany(filter, update); //删除数据 var filter1 = Builders<BsonDocument>.Filter.Eq("count", 101); collection.DeleteMany(filter1); BsonDocument document2 = new BsonDocument(); document2.Add("name", "MongoDB"); document2.Add("type", "Database"); document2.Add("count", "1"); collection.InsertOne(document2); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构