zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    windows服务等获取文件路径文件目录方法
    推荐几款很棒的 JavaScript 表单美化和验证插件
    在网站制作中随时可用的10个 HTML5 代码片段
    SQLServer数据排序
    SQL Join的一些总结
    3.14(链表练习)
    链表
    基数排序
    hdu-1198(并查集)
    hdu-1207(规律推导)
  • 原文地址:https://www.cnblogs.com/myfqm/p/13037844.html
Copyright © 2011-2022 走看看