当前位置: 首页 > 编程笔记 >

.Net Core使用MongoDB的详细教程

狄侯林
2023-03-14
本文向大家介绍.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> 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中文网:https://www.mongodb.org.cn

总结

到此这篇关于.Net Core使用MongoDB的完整步骤的文章就介绍到这了,更多相关.Net Core使用MongoDB内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!

 类似资料:
  • 本文向大家介绍Navicat Premium连接mongodb详细教程,包括了Navicat Premium连接mongodb详细教程的使用技巧和注意事项,需要的朋友参考一下 0 环境 操作系统:win10 1 准备 navicat15 破解 CentOS Docker 安装 Docker 安装 MongoDB 2 Docker 安装 MongoDB 注意:保持网络稳定 3 Navicat Pre

  • 主要内容:面向读者,前提条件.NET Core是Microsoft最新的通用开发平台。它可以在不同的平台上工作,并且已经被重新设计,使.NET变得快速,灵活和现代。 .NET核心恰好是微软的主要贡献之一。 开发人员现在可以使用.NET构建Android,iOS,Linux,Mac和Windows应用程序,全部使用开放源代码。 面向读者 本教程是为希望了解.NET Core基础知识的软件程序员设计的。 前提条件 要求读者应该对

  • 本文向大家介绍Ubuntu16.04手动安装MongoDB的详细教程,包括了Ubuntu16.04手动安装MongoDB的详细教程的使用技巧和注意事项,需要的朋友参考一下 我最近在研究MongoDB的路上,那么今天也算个学习笔记吧!今天用Ubuntu16.04手动安装MongoDB,分享给大家 注意事项: 仔细按步骤阅读操作 注意别写错字 牢记上面两点 一、用自带的火狐浏览器下载Ubuntu 16

  • 本文向大家介绍NodeJS中的MongoDB快速入门详细教程,包括了NodeJS中的MongoDB快速入门详细教程的使用技巧和注意事项,需要的朋友参考一下 MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 一

  • 本文向大家介绍python UIAutomator2使用超详细教程,包括了python UIAutomator2使用超详细教程的使用技巧和注意事项,需要的朋友参考一下 一、环境要求 python 3.6+ android 4.4+ 二、介绍 uiautomator2 是一个可以使用Python对Android设备进行UI自动化的库。其底层基于Google uiautomator,Google提供的

  • 本文向大家介绍Xcode使用教程详细讲解(全),包括了Xcode使用教程详细讲解(全)的使用技巧和注意事项,需要的朋友参考一下 Xcode使用教程详细讲解是本文要介绍的内容,Xcode是一个款强大的IDE开发环境,就像你在写Windows程序时需要VS2005一样 需要要Xcode为你写Mac程序提供环境。因此,如果你要成为Mac 程序的开发者,灵活运用Xcode工具是你必须做的第一步。 1)我们