• C#如何对Mongodb进行增删改查


    原文引用:https://blog.csdn.net/m0_37044279/article/details/76863470

    如今MongoDB已经跟新到3.4版本,但是对于更新后的版本网上资料更多是针对老版本,有些API在新版本中是被废弃掉的。本文将介绍C#如何对window下Mongodb3.4进行简单的增删改查。

    1、下载Mongodb,下载地址如下:

    https://www.mongodb.com/download-center?jmp=nav#community

    安装成功后(我这里是安装在D盘),需要在D盘中(如果安装在C盘,就在C盘中)创建一个Data文件夹,然后在Data文件夹中新建一个db文件夹,如下图所示:


    2、运行Mongodb服务

    在Mongodb文件夹bin中,可以找到mongod.exe(服务端)和mongo.exe(客户端),我们需要用cmd以管理员身份运行mongod.exe,运行结果如图所示:

    这样Monodb服务就开启成功(mongodb默认分配的端口号都是27017)

    我们再以相同的方式运行mongo.exe,运行结果如图所示:

    Mongodb服务器显示连接上来的客户端信息。

    3、C#通过代码实现对Mongodb的增删改查

    3.1 创建Console控制台项目
    3.2 添加MongoDB.Drive.dll(Nuget可以下载)
    3.3 代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using MongoDB.Driver;
    using MongoDB.Bson;

    namespace Mongo_T
    {
    class Program
    {
    static void Main(string[] args)
    {
    var connStr = "mongodb://127.0.0.1:27017/?safe=true";
    var client = new MongoClient(connStr);
    //创建或打开已有数据库test
    var database = client.GetDatabase("test");
    //collection类似与数据库中的table,这里创建了名字为person的collection,存放Person对象
    var collection = database.GetCollection<Person>("person");

    Person p = new Person();
    p.Name = "xxx";
    p.Pwd = "123";
    p.Score = "80";

    //Insert Data
    collection.InsertOne(person);

    //Delete Data
    var filter = Builders<Person>.Filter.Eq("Name","g"); //匹配Name 为 “g” 的数据
    var result = collection.DeleteOne(filter);

    //Update Data
    var filter = Builders<Person>.Filter.Eq("Name","g");
    var update = Builders<Person>.Update.Set("Pwd","123");
    var result = collection.UpdateOne(filter,update);

    // Update Multiple Documents
    var builder = Builders<Person>.Filter;
    var filter = builder.Eq("Name","g") & builder.Eq("Pwd","123");
    var update = Builders<Person>.Update.Set("field","value");
    var result = collection.UpdateMany(filter,update);


    //Query Data
    var filter = Builders<Person>.Filter.Eq("Name","g");
    var result = collection.Find(filter).ToList();

    //Greater Than Operator($gt)
    var filter = Builders<Person>.Filter.Gt("Score",60);
    var result = collection.Find(filter).ToList(); //获取分数超过60的集合

    //Less Than Operator($lt)
    var filter = Builders<Person>.Filter.Lt("Score",60);
    var result = collection.Find(filter).ToList(); //获取分数低于60的集合

    //添加单个索引 Name
    var keys = Builders<Person>.IndexKeys.Ascending("Name");
    collection.Indexes.CreateOne(keys);

    //添加多个索引
    var keys = Builders<Person>.IndexKeys.Ascending("Name").Ascending("Pwd");
    collection.Indexes.CreateOne(keys);

    Console.ReadKey();
    }
    }

    public class Person
    {
    public ObjectId _id {get; set;}
    public string Name {get; set;}
    public string Pwd {get; set;}
    public string Score {get; set;}
    }
    }

    在这里进行的操作我们可以在mongo.exe中进行查看,这里就不在详说了,希望对大家有所帮助!!
    ————————————————
    版权声明:本文为CSDN博主「DoOrie」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/m0_37044279/article/details/76863470

  • 相关阅读:
    容器小结
    STL之Map和multimap容器
    STL之Set和multiset容器
    STL之优先级队列priority_queue
    STL之List容器
    STL之Queue容器
    STL之stack容器
    应用安全-提权/降权相关整理
    安卓监听工具整理
    Linux命令整理-Kali
  • 原文地址:https://www.cnblogs.com/bruce1992/p/16356338.html
Copyright © 2020-2023  润新知