服务器之家

服务器之家 > 正文

.Net Core使用MongoDB的详细教程

时间:2021-11-30 14:12     来源/作者:江北的博客、

前言

mongodb 是由c++语言编写的,是一个基于分布式且面向文档存储的开源数据库系统。

下载地址:

https://www.mongodb.com/download-center/community

在.net core中使用需要引入核心包 mongodb.driver

添加数据:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
//与mongodb建立连接
mongoclient client = new mongoclient("mongodb://127.0.0.1");
//获得数据库,没有则自动创建
imongodatabase db = client.getdatabase("db1");
//拿到集合(表)
imongocollection<student> student = db.getcollection<student>("student");
var data = new student();
data.id = 1;
data.name = "江北";
data.age = 22;
data.remarks = "暂无";
//添加一条数据
student.insertone(data);

在图形化界面中查看一下

.Net Core使用MongoDB的详细教程

.Net Core使用MongoDB的详细教程

mongodb默认用id做主键,因此不会显式的指定id是主键。mongdb中没有内置"自增字段",可以把id声明为objectid类型,这样插入以后就自动给字段赋值。

例如,建一个类:

?
1
2
3
4
5
6
public class school
{
 public objectid id { get; set; }
 public string name { get; set; }
 public string address { get; set; }
}//需引入命名空间 using mongodb.bson;

.Net Core使用MongoDB的详细教程

.Net Core使用MongoDB的详细教程

当然school对象之后多加或者去掉一个字段都行。mongodb是用json保存的,因此也可以直接用json格式插入,可用bsondocument对象作为泛型对象。

?
1
2
3
4
5
6
7
8
9
//与mongodb建立连接
mongoclient client = new mongoclient("mongodb://127.0.0.1");
//获得数据库,没有则自动创建
imongodatabase db = client.getdatabase("db1");
//拿到集合(表)
imongocollection<bsondocument> document = db.getcollection<bsondocument>("school");
db.getcollection<bsondocument>("school");
var json = "{id:1,name:'xx学校',address:'xxx路xx号',remarks:'暂无!'}";
bsondocument bsons = bsondocument.parse(json);

.Net Core使用MongoDB的详细教程

学生和学校是有对应关系的,我们可以添加有嵌套关系类型的对象

?
1
2
3
4
5
6
7
8
public class student
{
 public int id { get; set; }
 public string name { get; set; }
 public int age { get; set; }
 public string remarks { get; set; }
 public school school { get; set; }
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//与mongodb建立连接
mongoclient client = new mongoclient("mongodb://127.0.0.1");
//获得数据库,没有则自动创建
imongodatabase db = client.getdatabase("db1");
//拿到集合(表)
imongocollection<student> student = db.getcollection<student>("student");
student student1 = new student();
student1.id = 2;
student1.name = "北晚舟";
student1.age = 22;
student1.remarks = "暂无";
school school = new school();
school.name = "xxxschool";
school.address = "xxxaddress";
student1.school = school;
student.insertone(student1);

.Net Core使用MongoDB的详细教程

数据查询:

?
1
2
3
4
5
6
7
8
//与mongodb建立连接
mongoclient client = new mongoclient("mongodb://127.0.0.1");
//获得数据库,没有则自动创建
imongodatabase db = client.getdatabase("db1");
//拿到集合(表)
imongocollection<student> student = db.getcollection<student>("student");
var data = builders<student>.filter.gt(m => m.age, 21);//gt:大于
var result = student.find(data).tolist();

.Net Core使用MongoDB的详细教程

我们安装的nuget包是支持lamda表达式的,可用条件表达式来查找数据

?
1
2
3
4
5
6
7
8
//与mongodb建立连接
mongoclient client = new mongoclient("mongodb://127.0.0.1");
//获得数据库,没有则自动创建
imongodatabase db = client.getdatabase("db1");
//拿到集合(表)
imongocollection<student> student = db.getcollection<student>("student");
var data = builders<student>.filter.where(m => m.age > 21 && m.name.contains("江"));
var result = student.find(data).tolist();

分页查询:

?
1
2
3
4
5
6
7
8
9
10
11
12
//与mongodb建立连接
mongoclient client = new mongoclient("mongodb://127.0.0.1");
//获得数据库,没有则自动创建
imongodatabase db = client.getdatabase("db1");
//拿到集合(表)
imongocollection<student> student = db.getcollection<student>("student");
var filter = builders<student>.filter.where(m => m.age > 21);
findoptions<student, student> findopt = new findoptions<student, student>();
findopt.limit = 2;
findopt.skip = 1;
findopt.sort = builders<student>.sort.ascending(m => m.age).descending(m => m.name);
var result = (student.findasync(filter, findopt).result).tolist();

数据更新:

?
1
2
3
4
5
6
7
8
9
10
//与mongodb建立连接
mongoclient client = new mongoclient("mongodb://127.0.0.1");
//获得数据库,没有则自动创建
imongodatabase db = client.getdatabase("db1");
//拿到集合(表)
imongocollection<student> student = db.getcollection<student>("student");
var filter = builders<student>.filter.where(m => m.age > 21);
var update = builders<student>.update.set(m => m.name, "皮卡丘");
//update student set name="皮卡丘" where age>21
student.updatemany(filter, update);

.Net Core使用MongoDB的详细教程

数据删除:

?
1
2
3
4
5
6
7
8
9
10
//与mongodb建立连接
mongoclient client = new mongoclient("mongodb://127.0.0.1");
//获得数据库,没有则自动创建
imongodatabase db = client.getdatabase("db1");
//拿到集合(表)
imongocollection<student> student = db.getcollection<student>("student");
var filter = builders<student>.filter.where(m => m.age > 21);
//delete from student where age>21
//student.deletemany(filter);
student.deleteone(filter);//只删除一个

.Net Core使用MongoDB的详细教程

mongodb中文网:https://www.mongodb.org.cn

总结

到此这篇关于.net core使用mongodb的完整步骤的文章就介绍到这了,更多相关.net core使用mongodb内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/zhangnever/p/13419532.html

标签:

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部