.Net Core使用MongoDB的详细教程
更新时间:2020年08月04日 08:41:42 作者:江北的博客、
这篇文章主要给大家介绍了关于.Net Core使用MongoDB的完整步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
前言
MongoDB 是由C++语言编写的,是一个基于分布式且面向文档存储的开源数据库系统。
下载地址:
www.mongodb.com/download-center/community
在.Net Core中使用需要引入核心包 MongoDB.Driver
添加数据:
//与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);
在图形化界面中查看一下
Mongodb默认用id做主键,因此不会显式的指定id是主键。Mongdb中没有内置”自增字段”,可以把id声明为ObjectId类型,这样插入以后就自动给字段赋值。
例如,建一个类:
public class School
{
public ObjectId id { get; set; }
public string name { get; set; }
public string address { get; set; }
}//需引入命名空间 using MongoDB.Bson;
当然School对象之后多加或者去掉一个字段都行。Mongodb是用Json保存的,因此也可以直接用Json格式插入,可用BsonDocument对象作为泛型对象。
//与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);
学生和学校是有对应关系的,我们可以添加有嵌套关系类型的对象
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; }
}
//与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);
数据查询:
//与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();
我们安装的NuGet包是支持Lamda表达式的,可用条件表达式来查找数据
//与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();
分页查询:
//与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();
数据更新:
//与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);
数据删除:
//与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);//只删除一个
MongoDB中文网:www.mongodb.org.cn
总结
到此这篇关于.Net Core使用MongoDB的完整步骤的文章就介绍到这了,更多相关.Net Core使用MongoDB内容请搜索华域联盟以前的文章或继续浏览下面的相关文章希望大家以后多多支持华域联盟!
您可能感兴趣的文章:MongoDB 用户管理Linux安装MongoDB启动及常见问题解决MongoDB如何查看版本信息详解Centos7 yum安装mongodb实现步骤详解mongodb 4.0副本集搭建的全过程vs2019 下用 vb.net编写窗体程序连接 mongodb4.2的方法开源 5 款超好用的数据库 GUI 带你玩转 MongoDB、Redis、SQL 数据库(推荐)MongoDb CPU利用率过高问题如何解决
.net
core
mongodb
相关文章
ASP.NET微信开发(接口指南)这篇文章详细介绍了ASP.NET微信开发接口指南,微信公众平台的开发较为简单,感兴趣的小伙伴们可以参考一下 2015-12-12
.NET Core自定义项目模板的全过程这篇文章主要给大家介绍了关于.NET Core自定义项目模板的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 2021-04-04
基于asp.net下使用jquery实现ajax的解决方法本文以最简单的方法为新手示范如何使用jquery实现ajax技术(所以本文是专为新手所写,老鸟勿喷,大神此处省略一万字)。至于什么是jquery什么是ajax,自己谷歌去 2013-05-05
asp.net实现上传文件显示本地绝对路径的实例代码asp.net实现上传图片显示本地绝对路径图片,其实这个还是得用<DIV></DIV>去显示图片会更好一点!用js实现图片的比例压缩让图片一样能够很清楚!下面把代码贴出来 2013-07-07
.Net Web Api中利用FluentValidate进行参数验证的方法最近在做Web API,用到了流式验证,就简单的说说这个流式验证,下面这篇文章主要给大家介绍了关于.Net Web Api中利用FluentValidate进行参数验证的相关资料,,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧 2018-07-07
Asp.Net Core基于JWT认证的数据接口网关实例代码这篇文章主要给大家介绍了关于Asp.Net Core基于JWT认证的数据接口网关的相关资料,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者使用Asp.net Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧 2019-03-03
ASP.NET Web API如何将注释自动生成帮助文档本篇文章主要介绍了ASP.NET Web API从注释自动生成帮助文档的方法,功能很是强大,现与大家分享一下,需要的朋友可以参考下 2015-07-07
asp.net 1.1/ 2.0 中快速实现单点登陆asp.net 1.1/ 2.0 中快速实现单点登陆… 2007-04-04
ASP.NET在MVC控制器中获取Form表单值的方法这篇文章主要介绍了ASP.NET在MVC控制器中获取Form表单值的方法,涉及asp.net在MVC控制器中基于FormCollection类操作表单的相关技巧,需要的朋友可以参考下 2016-08-08
dotnet封装的kindeditor编辑器控件KindEditor很不错,没有ForNet的扩展,我是搞.net开发的,就用它简单封装了一个控件,拖过来即可使用,使用更加简单 2014-01-01
最新评论

评论(0)