c#Mongodb 操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiajing13579/article/details/81078568

1. 从官网上下载 Mongodb 4.0 https://www.mongodb.com/download-center?jmp=nav#community, 安装时注册其中一步左下不要选 中否则会加装很慢,这个很多人会碰到. 安装完以后,直接在服务的生成 服务。

2.c# 的 操作库 在这里:https://docs.mongodb.com/ecosystem/drivers/csharp/ (.net 4.5版)以上

3. 操作工具 Robo 3T 可从官方网上直接下载

4.增加一个数据库 这个可用命令,可用直接用工具完成

5.增加一个文件:

 public byte[] ConvertToBytes(Image img)
        {
           
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            Bitmap bmp = new Bitmap(img);//克隆Bitmap对象
            bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
            byte[] bytes = new byte[ms.Length];
            ms.Seek(0, SeekOrigin.Begin);
            ms.Read(bytes, 0, Convert.ToInt32(ms.Length));
            ms.Close();
            bmp.Dispose();
            return bytes;

        }

           var client = new MongoClient("mongodb://localhost");
            var database = client.GetDatabase("TestDb");
            var fs = new GridFSBucket(database);
            fs.UploadFromBytes("201807170002.jpg", ConvertToBytes(this.pictureEdit1.Image));

6.修改记录

 var client = new MongoClient("mongodb://localhost");
            var database = client.GetDatabase("TestDb");
            var fs = new GridFSBucket(database);

            var t = fs.DownloadAsBytesByNameAsync("201807170002.jpg");
            Task.WaitAll(t);
            var bytes = t.Result;
            Image img1 = null;
            MemoryStream stream = new MemoryStream(bytes);
            img1 = Image.FromStream(stream);
            this.pictureEdit2.Image = (Image)img1.Clone();
            stream.Close();

7.删除记录

 var client = new MongoClient(MyWBDataContext.set.ImageServer);
                    var database = client.GetDatabase(MyWBDataContext.set.ImageDB);
                    var fs = new GridFSBucket(database);
                    ObjectId imageID;
                   
                        imageID = new ObjectId(var.Take(1).SingleOrDefault().ObjectID);
                        fs.Delete(imageID);

8.上传一个 文件

OpenFileDialog fdlg = new OpenFileDialog();
            fdlg.Title = "C# Corner Open File Dialog";
            fdlg.InitialDirectory = @"c:\";   //@是取消转义字符的意思
            fdlg.Filter = "All files(*.*)|*.*|All files(*.*)|*.* ";
            /*
             * FilterIndex 属性用于选择了何种文件类型,缺省设置为0,系统取Filter属性设置第一项
             * ,相当于FilterIndex 属性设置为1.如果你编了3个文件类型,当FilterIndex =2时是指第2个.
             */
            fdlg.FilterIndex = 2;
            /*
             *如果值为false,那么下一次选择文件的初始目录是上一次你选择的那个目录,
             *不固定;如果值为true,每次打开这个对话框初始目录不随你的选择而改变,是固定的  
             */
            fdlg.RestoreDirectory = true;

            try
            {
                if (fdlg.ShowDialog() == DialogResult.OK)
                {
                    textBox1.Text = System.IO.Path.GetFileNameWithoutExtension(fdlg.FileName);

                    var client = new MongoClient("mongodb://localhost");
                    var database = client.GetDatabase("DOCDB");
                    var fs = new GridFSBucket(database);
                    using (FileStream fsRead = new FileStream(fdlg.FileName, FileMode.Open))
                    {

                        fs.UploadFromStream("飞1", fsRead);
                    }
                }
            }
            catch (Exception ex) {
                MessageBox.Show(ex.ToString());
            }
9.下载文件

 SaveFileDialog sfd=new SaveFileDialog();
           sfd.Filter = "文本文件(*.txt)|*.txt|所有文件|*.*";//设置文件类型
           sfd.FileName = "保存";//设置默认文件名
           sfd.DefaultExt = "txt";//设置默认格式(可以不设)
           sfd.AddExtension = true;//设置自动在文件名中添加扩展名
           if (sfd.ShowDialog()==DialogResult.OK)
           {

                try
                {
                    var client = new MongoClient("mongodb://localhost");
                    var database = client.GetDatabase("DOCDB");
                    var fs = new GridFSBucket(database);

                    using (FileStream fsWrite = new FileStream(@"e:\tesdffdf.doc", FileMode.CreateNew))
                    {
                        

                        //fs.DownloadToStreamByName("飞1", fsWrite);
                        BsonValue v = new ObjectId("5b4d9b5afea13b059440da07");
                        fs.DownloadToStream(v, fsWrite);
                        
                    }
                }
                catch (Exception ex) {
                    MessageBox.Show(ex.ToString());
                }
            }

猜你喜欢

转载自blog.csdn.net/xiajing13579/article/details/81078568