.net集成MongoDB的基本操作

.net集成MongoDB需要两个前提;跟连接mysql一样:

  1. 你需要一个MongoDB Server
  2. 还有.net平台连接mongodb server的驱动(MongoDB.Driver)

安装的MongoDb.Driver的版本选择与.net framework版本的对应图

MongoDb.Driver与MongoDb Server的版本对应图

我用的是MongoDb 4 和 Driver 2.7  visual studio 2015

nuget导包;

 

准备工作完成开始测试;

using MongoDB.Driver;
namespace safetodelete_mongodb_example
{
    class Program
    {
        static void Main(string[] args)
        {
            //测试插入代码

            MongoClient mongoClient = new MongoClient("mongodb://127.0.0.1");

            var mongodb = mongoClient.GetDatabase("docTest");

            //插入新的集合
            //mongodb.CreateCollection("cola");

            var cola = mongodb.GetCollection<Student>("cola");

            var s1 = new Student();
            s1.name = "李四";
            s1.age = 22;
            s1.scores.Add(70.0);
            s1.scores.Add(42.2);
            s1.scores.Add(95.5);

            cola.InsertOne(s1);

            Console.WriteLine("end");
            Console.ReadKey();
       

        }
    }
    //实体类
    class Student
    {

        public ObjectId _id { get; set; }
        public String name { get; set; }
        public int age { get; set; }
        public List< Double> scores { get; set; }

        public Student()
        {
            this.scores = new List<double>();
        }
    }
}
 

编译、运行。

查看结果:

下面进行增删改查测试

        static void Main(string[] args)
        {
            //测试插入代码

            MongoClient mongoClient = new MongoClient("mongodb://127.0.0.1");

            var mongodb = mongoClient.GetDatabase("docTest");

            //显示docTest数据库中的所有集合
            var allCollections = mongodb.ListCollectionNames();

            foreach(var i in allCollections.ToList())
            {
                Console.WriteLine("Collection : "+i);
            }
                        
            //插入新的集合
            //mongodb.CreateCollection("cola");

            //从cola集合中查出叫"李四"的文档
            var cola = mongodb.GetCollection<Student>("cola");

            var result= cola.Find<Student>(s => s.name == "李四");
            Student studentLiSi = cola.AsQueryable().Where(s => s.name == "李四").First();
            var studentLiSi2= result.ToList()[0];

            Console.WriteLine(studentLiSi.name+studentLiSi.age+studentLiSi.scores.ToArray());
            Console.WriteLine(studentLiSi2.name + studentLiSi2.age + studentLiSi2.scores.ToArray());

            //删除“李四”文档
            cola.DeleteOne(s => s.name == studentLiSi.name && s.age == studentLiSi.age);


            //修改cola集合中的第一个文档
            var studentUpdating= cola.Find(s=>s.name!="").First();           
            var filterUpdate = Builders<Student>.Filter.Eq("name", studentUpdating.name);
            var updatedefine = Builders<Student>.Update.Set("name", "莎士比亚")
                                                        .Set("age", 455);

            cola.UpdateOne(filterUpdate, updatedefine);
            
            //插入一个新文档
            var s1 = new Student();
            s1.name = "王二";
            s1.age = 22;
            s1.scores.Add(70.0);
            s1.scores.Add(42.2);
            s1.scores.Add(95.5);

            cola.InsertOne(s1);

            Console.WriteLine("end");
            Console.ReadKey();      

        }

OK结果正确。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值