• MongoDB 笔记2


    引用包:

    MongoDB.Driver

    先建立数据库连接

                // 1.建立数据库连接
                var client = new MongoClient("mongodb://localhost:27017");
    
                // 2.获取数据库foo,如果没有则新建
                var database = client.GetDatabase("foo");
    
                Console.WriteLine("查第一条数据");
                // 3.获取数据集Collection,获取表bar,如果没有则新建
                var collection = database.GetCollection<BsonDocument>("bar");

    简单的实现增删改查功能:

    新增:

                // 定义数据
                var document = new BsonDocument
                {
                    { "name", "MongoDB" },
                    { "type", "Database" },
                    { "count", 1 },
                    { "info", new BsonDocument
                        {
                            { "x", 203 },
                            { "y", 102 }
                        }}
                };
    
                //var document = new MyDocument()
                //{
                //    name = "MSsql",
                //    type = "Database",
                //    count = 2,
                //    info = new MyDocumentInfo()
                //    {
                //        x = 100,
                //        y = 200
                //    }
                //};
    
                //同步插入数据
                collection.InsertOne(document);
                //异步插入数据
                //await collection.InsertOneAsync(document);
    
                // 多条数据
                //var documents = Enumerable.Range(0, 100).Select(i => new BsonDocument("counter", i));
                // 批量插入
                //collection.InsertMany(documents);
                // 批量异步插入
                //await collection.InsertManyAsync(documents);
    
    
                var count = collection.Count(new BsonDocument());  //产生一个空BsonDocument的过滤器,指对该类型的文档进行计数。
    
                Console.WriteLine(string.Format("已插入{0}条数据", count));
    View Code

    删除:

                //使用_id来筛选数据
                var filter = Builders<MyDocument>.Filter.Eq("_id", new ObjectId("5ed7121c5e3dec3ebcbd86fa"));
    
                //使用筛选器获取数据集合中的第一条
                //var items = collection.Find<MyDocument>(filter).FirstOrDefault();
    
                //筛选出数据并删除
                var result1 = collection.FindOneAndDelete(filter);
    
                Console.WriteLine(result1.id);
    
                //删除指定条件的一条数据
                var result = collection.DeleteOne<MyDocument>(u => u.counter == 6);
    
                Console.WriteLine(result.DeletedCount);
    View Code

    修改:

                //设置更新的数据
                var update = Builders<MyDocument>.Update.Set(p => p.name, "MySql");
    
                //更新指定条件的一条数据
                var result = collection.UpdateOne<MyDocument>(u => u.counter == 5, update);
    
                Console.WriteLine(result.ModifiedCount);
    View Code

    查询:

                var document1 = collection.Find(new BsonDocument()).FirstOrDefault();
                
                Console.WriteLine(document1.ToString());
    
    
                Console.WriteLine("查全部数据");
                //var documents = collection.Find(new BsonDocument()).ToList();     //同步
                //var document2 = collection.Find(new BsonDocument()).ToCursor();   //同步
                //await collection.Find(new BsonDocument()).ForEachAsync(d => Console.WriteLine(d));    //异步
                foreach (var item in collection.Find(new BsonDocument()).ToCursor().ToEnumerable())
                {
                    Console.WriteLine(item);
                }
    
                Console.WriteLine("使用筛选数据");
                //创建筛选器
                var filter = Builders<BsonDocument>.Filter.Eq("name", "MongoDB");
                //使用筛选器进行查找
                var document2 = collection.Find(filter).First();
                Console.WriteLine(document2);
    
                //分页查询
                var documents = collection.Find<MyDocument>(_ => true).Skip(2).Limit(2).ToList();
                foreach (var item in documents)
                {
                    Console.WriteLine(item.id);
                }
    View Code

    参考资料:

    https://www.cnblogs.com/daxiongblog/p/9319785.html

    https://cloud.tencent.com/developer/article/1395086

  • 相关阅读:
    Servlet再度学习
    JSP九大内置对象
    Java I/O学习
    Java内存管理
    数据库面试常问的一些基本概念
    JVM类加载原理学习笔记
    Ajax原理学习
    Java基础之泛型
    Java基础之集合
    java多线程快速入门(二)
  • 原文地址:https://www.cnblogs.com/myfqm/p/13037844.html
Copyright © 2020-2023  润新知