这篇文章主要介绍“.Net Core怎么使用MongoDB”,在日常操作中,相信很多人在.Net Core怎么使用MongoDB问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”.Net Core怎么使用MongoDB”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
成都创新互联公司专注于荆州企业网站建设,成都响应式网站建设公司,商城网站开发。荆州网站建设公司,为荆州等地区提供建站服务。全流程定制网站建设,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务前言
MongoDB 是由C++语言编写的,是一个基于分布式且面向文档存储的开源数据库系统。
下载地址:
https://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 = db.GetCollection("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 document = db.GetCollection("School");
db.GetCollection("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 = db.GetCollection("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 = db.GetCollection("Student");
var data = Builders.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 = db.GetCollection("Student");
var data = Builders.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 = db.GetCollection("Student");
var filter = Builders.Filter.Where(m => m.age > 21);
FindOptions findOpt = new FindOptions();
findOpt.Limit = 2;
findOpt.Skip = 1;
findOpt.Sort = Builders.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 = db.GetCollection("Student");
var filter = Builders.Filter.Where(m => m.age > 21);
var update = Builders.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 = db.GetCollection("Student");
var filter = Builders.Filter.Where(m => m.age > 21);
//delete from Student where age>21
//student.DeleteMany(filter);
student.DeleteOne(filter);//只删除一个 
MongoDB中文网:https://www.mongodb.org.cn
总结
到此,关于“.Net Core怎么使用MongoDB”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!
当前题目:.NetCore怎么使用MongoDB-创新互联
当前链接:http://www.scyingshan.cn/article/dhijgh.html


咨询
建站咨询
