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

posted @ 2022-06-08 16:59  MaxBruce  阅读(449)  评论(0)    收藏  举报