C# 操作mongoDB

C# 操作mongoDB

一 使用NuGet安装MongoDB.Driver

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

二 添加

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MongoDBTestDemo
{
    public class ModelInfo
    {
        public MongoDB.Bson.ObjectId Id { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }

    }
}

在这里插入图片描述

// 添加
ModelInfo model = new ModelInfo();
model.Name = textBox2.Text;
model.Age = int.Parse(textBox3.Text);   
// 创建MongoDB客户端实例,连接数据库
MongoClient mongoClient = new MongoClient("mongodb://localhost:27017");
// 获取数据库
IMongoDatabase mydb = mongoClient.GetDatabase("mydb");
// 获取集合
var collection = mydb.GetCollection<ModelInfo>("userinfo");
// 插入实例文档
collection.InsertOne(model);
MessageBox.Show("添加成功!");

在这里插入图片描述

三 查询

private void Query()
{
    MongoClient mongoClient = new MongoClient("mongodb://localhost:27017");
    IMongoDatabase mydb = mongoClient.GetDatabase("mydb");
    var collection = mydb.GetCollection<ModelInfo>("userinfo");
    // 查询
    var list = collection.Find(x=>x.Name.Contains("")).SortByDescending(x=>x.Id).Skip(0).Limit(20).ToList();
    dataGridView1.DataSource = list;    
}
        private void button1_Click(object sender, EventArgs e)
        {
            Form2 frm = new Form2(1,null);
            if(frm.ShowDialog() == DialogResult.OK)
            {
                Query();
            }
        }

        private void Query()
        {
            MongoClient mongoClient = new MongoClient("mongodb://localhost:27017");
            IMongoDatabase mydb = mongoClient.GetDatabase("mydb");
            var collection = mydb.GetCollection<ModelInfo>("userinfo");
            var list = collection.Find(x=>x.Name.Contains("")).SortByDescending(x=>x.Id).Skip(0).Limit(20).ToList();
            dataGridView1.DataSource = list;    

        }

在这里插入图片描述

修改

在这里插入图片描述

 // 修改
 model.Id=MongoDB.Bson.ObjectId.Parse(textBox1.Text);    

 var doc = collection.Find(x=>x.Id == model.Id).Skip(0).Limit(1).ToList();

 if(!doc.Any())
 {
     return;
 }

 var usdataBuilder = Builders<ModelInfo>.Update;
 var update = usdataBuilder.Set(x=>x.Name, model.Name).Set(x=>x.Age,model.Age);
 UpdateResult result= collection.UpdateOne(x=>x.Id==model.Id,update);    
 if(result.ModifiedCount>0)
 {
     MessageBox.Show("修改成功!");

     this.DialogResult = DialogResult.OK;

 }
 else
 {
     MessageBox.Show("修改失败!");

 }

在这里插入图片描述

            DataGridViewRow dr = this.dataGridView1.CurrentRow;

            if(dr==null)
            {
                MessageBox.Show("请选中要修改的数据");
                return;
            }

            ModelInfo modelInfo = new ModelInfo();

            modelInfo.Id = MongoDB.Bson.ObjectId.Parse(dr.Cells["Id"].Value.ToString());
            modelInfo.Name = dr.Cells["Name"].Value.ToString();
            modelInfo.Age = int.Parse(dr.Cells["Age"].Value.ToString());

            Form2 frm = new Form2(2,modelInfo);
            if (frm.ShowDialog() == DialogResult.OK)
            {
                Query();
            }

删除

        private void button4_Click(object sender, EventArgs e)
        {
            DataGridViewRow dr = this.dataGridView1.CurrentRow;

            if (dr == null)
            {
                MessageBox.Show("请选中要删除的数据");
                return;
            }
            MongoClient mongoClient = new MongoClient("mongodb://localhost:27017");
            IMongoDatabase mydb = mongoClient.GetDatabase("mydb");
            var collection = mydb.GetCollection<ModelInfo>("userinfo");
            MongoDB.Bson.ObjectId id = MongoDB.Bson.ObjectId.Parse(dr.Cells["Id"].Value.ToString());

            DeleteResult result = collection.DeleteOne(x=>x.Id ==id);

            if (result.DeletedCount>0)
            {
                Query();
            }


        }

完整代码

在这里插入图片描述

using MongoDB.Driver;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace MongoDBTestDemo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 frm = new Form2(1,null);
            if(frm.ShowDialog() == DialogResult.OK)
            {
                Query();
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            Query();

        }


        private void Query()
        {
            MongoClient mongoClient = new MongoClient("mongodb://localhost:27017");
            IMongoDatabase mydb = mongoClient.GetDatabase("mydb");
            var collection = mydb.GetCollection<ModelInfo>("userinfo");
            var list = collection.Find(x=>x.Name.Contains("")).SortByDescending(x=>x.Id).Skip(0).Limit(20).ToList();
            dataGridView1.DataSource = list;    

        }

        private void button2_Click(object sender, EventArgs e)
        {
            DataGridViewRow dr = this.dataGridView1.CurrentRow;

            if(dr==null)
            {
                MessageBox.Show("请选中要修改的数据");
                return;
            }

            ModelInfo modelInfo = new ModelInfo();

            modelInfo.Id = MongoDB.Bson.ObjectId.Parse(dr.Cells["Id"].Value.ToString());
            modelInfo.Name = dr.Cells["Name"].Value.ToString();
            modelInfo.Age = int.Parse(dr.Cells["Age"].Value.ToString());

            Form2 frm = new Form2(2,modelInfo);
            if (frm.ShowDialog() == DialogResult.OK)
            {
                Query();
            }
        }

        private void button4_Click(object sender, EventArgs e)
        {
            DataGridViewRow dr = this.dataGridView1.CurrentRow;

            if (dr == null)
            {
                MessageBox.Show("请选中要删除的数据");
                return;
            }
            MongoClient mongoClient = new MongoClient("mongodb://localhost:27017");
            IMongoDatabase mydb = mongoClient.GetDatabase("mydb");
            var collection = mydb.GetCollection<ModelInfo>("userinfo");
            MongoDB.Bson.ObjectId id = MongoDB.Bson.ObjectId.Parse(dr.Cells["Id"].Value.ToString());

            DeleteResult result = collection.DeleteOne(x=>x.Id ==id);

            if (result.DeletedCount>0)
            {
                Query();
            }


        }
    }
}

在这里插入图片描述

using MongoDB.Driver;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace MongoDBTestDemo
{
    public partial class Form2 : Form
    {
        int _type = 0;
        public Form2(int type,ModelInfo modelInfo)
        {
            InitializeComponent();
            _type = type;

            if(type ==2)
            {
                if(modelInfo != null)
                {
                    textBox1.Text = modelInfo.Id.ToString();
                    textBox2.Text = modelInfo.Name;  
                    textBox3.Text = modelInfo.Age.ToString();

                }


                button1.Text = "修改";
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {


            ModelInfo model = new ModelInfo();
            model.Name = textBox2.Text;
            model.Age = int.Parse(textBox3.Text);


            MongoClient mongoClient = new MongoClient("mongodb://localhost:27017");
            IMongoDatabase mydb = mongoClient.GetDatabase("mydb");
            var collection = mydb.GetCollection<ModelInfo>("userinfo");



            if (_type == 1)
            {
                // 添加


                collection.InsertOne(model);
                MessageBox.Show("添加成功!");
                this.DialogResult = DialogResult.OK;

            }
            else
            {
                // 修改
                model.Id=MongoDB.Bson.ObjectId.Parse(textBox1.Text);    

                var doc = collection.Find(x=>x.Id == model.Id).Skip(0).Limit(1).ToList();

                if(!doc.Any())
                {
                    return;
                }

                var usdataBuilder = Builders<ModelInfo>.Update;
                var update = usdataBuilder.Set(x=>x.Name, model.Name).Set(x=>x.Age,model.Age);
                UpdateResult result= collection.UpdateOne(x=>x.Id==model.Id,update);    
                if(result.ModifiedCount>0)
                {
                    MessageBox.Show("修改成功!");

                    this.DialogResult = DialogResult.OK;

                }
                else
                {
                    MessageBox.Show("修改失败!");

                }



            }

        }
    

    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值