• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#Asp.net中简单操作MongoDB数据库(一)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

需要引用MongoDB.Driver.dll、MongoDB.Driver.core.dll、MongoDB.Bson.dll三个dll。

1、数据库连接:

public class MongoDb
    {
        //方式一
        //private static readonly string connStr = "mongodb://myAdmin:123456@localhost";
        //private static readonly string dbName = "myTest";

        //方式二(myTestAdmin用户只可访问数据库myTest)
        private static readonly string connStr = "mongodb://myTestAdmin:123456@localhost/myTest";

        private static IMongoDatabase db = null;

        private static readonly object lockHelper = new object();

        private MongoDb() { }

        public static IMongoDatabase GetMongoDb()
        {
            if (db == null)
            {
                lock (lockHelper)
                {
                    if (db == null)
                    {
                        //方式一
                        //var client = new MongoClient(connStr);
                        //db = client.GetDatabase(dbName);

                        //方式二(myTestAdmin用户只可访问数据库myTest)
                        var url = new MongoUrl(connStr);
                        MongoClientSettings mcs = MongoClientSettings.FromUrl(url);
                        mcs.MaxConnectionLifeTime = TimeSpan.FromMilliseconds(1000);
                        var client = new MongoClient(mcs);
                        db = client.GetDatabase(url.DatabaseName);
                    }
                }
            }
            return db;
        }
    }

2、插入操作:

class Program
    {
        static void Main(string[] args)
        {
            IMongoDatabase db = MongoDb.GetMongoDb();

            var collection = db.GetCollection<BsonDocument>("userInfo");            

            //插入
            var document = new BsonDocument
            {
                { "name", "Liming" },
                { "age", "23" },
                { "score", new BsonDocument
                    {
                        { "yuwen", 115 },
                        { "shuxue", 135 },
                        { "yingyu", 120 }
                    }}
            };
            collection.InsertOne(document);            

            Console.ReadKey();
        }
    }

Robomongo中查看结果:

 

3、查询操作:

class Program
    {
        static void Main(string[] args)
        {
            IMongoDatabase db = MongoDb.GetMongoDb();

            var collection = db.GetCollection<BsonDocument>("userInfo");            
            
            //查询            
            var document = collection.Find(new BsonDocument()).FirstOrDefault();
            Console.WriteLine(document.ToString());
            

            Console.ReadKey();
        }
    }

 

4、更新操作:

class Program
    {
        static void Main(string[] args)
        {
            IMongoDatabase db = MongoDb.GetMongoDb();

            var collection = db.GetCollection<BsonDocument>("userInfo");            
            
            //更新
            var filter = Builders<BsonDocument>.Filter.Eq("age", "23");
            var update = Builders<BsonDocument>.Update.Set("age", "30");
            collection.UpdateOne(filter, update);
            
            Console.ReadKey();
        }
    }

 

5、删除操作:

 class Program
    {
        static void Main(string[] args)
        {
            IMongoDatabase db = MongoDb.GetMongoDb();

            var collection = db.GetCollection<BsonDocument>("userInfo");            
            
            //删除
            var filter1 = Builders<BsonDocument>.Filter.Eq("age", "30");
            collection.DeleteOne(filter1);

            Console.ReadKey();
        }
    }

 

参考:http://mongodb.github.io/mongo-csharp-driver/2.5/getting_started/quick_tour/

 

上面操作的集合类型都是BsonDocument,

下面可以自定义实体类,mongodb可以直接返回对应自定义类的集合或者对象:

C# Asp.net中简单操作MongoDB数据库(二)


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
asp.net弹出提示与跳转方式发布时间:2022-07-10
下一篇:
ASP.NETCore之跨平台的实时性能监控(2.健康检查)发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap