使用MongoDB在项目中实际运用

一、MongoDB,一个数据库,我们怎么去使用它呢?我们首先了解一下什么是MongoDb

官网的介绍是:MongoDB是专为可扩展性,高性能和高可用性而设计的数据库。它可以从单服务器部署扩展到大型、复杂的多数据中心架构。利用内存计算的优势,MongoDB能够提供高性能的数据读写操作。 MongoDB的本地复制和自动故障转移功能使您的应用程序具有企业级的可靠性和操作灵活性。

二、在Linux上安装MongoDB

创建文件

vi /etc/yum.repos.d/mongodb-org-3.6.repo

配置文件内容

[mongodb-org-3.6]

name=MongoDB Repository

baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.6/x86_64/

gpgcheck=1

enabled=1

gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

开始安装

sudo yum install -y mongodb-org

mongod -repair

然后返回根目录去创建一个文件夹data并在其下面创建db来存储文件

cd ..

mkdir data

cd data

mkdir db

启动MongoDB并查看状态

systemctl start mongod.service

systemctl status mongod.service

创建管理员账号

1、 登录

mongo

2、创建管理员账号

mongo

use admin

db.createUser({user:"root",pwd:"root",roles:[{role: "userAdminAnyDatabase", db: "admin"}]})

找到配置文件并修改其内容

vi /etc/mongod.conf

找到 bindIp:127.0.0.1 修改为0.0.0.0 这样就可以任意ip进行连接

开启:27017端口

firewall-cmd --zone=public --permanent --add-port=27017/tcp; firewall-cmd –reload

停止重启mongodb

systemctl stop mongod.service

systemctl restart mongod.service

这是我们在Linux上已经安装好了MongoDB,接下来就可以步入正题了,如何在项目中使用MongoDB

三、在.Net Core中使用MongoDB

这里我们首先准备一个.Net Core 的项目,然后在项目当中创建一个名叫MongoDBHelpers的类

public class MongoDBHelpers

    {

        /// <summary>

        /// 建立MongoDB连接

        /// </summary>

        static MongoClient mongoClient = new MongoClient(“"mongodb://0.0.0.0:27017”);//自己的mongodb地址

        /// <summary>

        /// 获取MongoDB数据库(admin数据库)

        /// </summary>

        private static readonly IMongoDatabase database = mongoClient.GetDatabase("admin");

 

        public static IMongoDatabase testDb { get { return database; } }

 

 

        //连接需要操作的集合,如果数据库下面包含此集合就会添加数据,如果没有则会创建此集合

        public static IMongoCollection<TestMongoDB> GetMongoTest => database.GetCollection<TestMongoDB>("Person");

    }

在这里我们连接MongoDB的操作算是完工了,接下来就是对数据的操作了主要介绍一下增删改查四步操作

1、 新增

     TestMongoDB testMongoDB = new TestMongoDB();

     testMongoDB.Name = "新增";

     testMongoDB.TestId = 2;

     testMongoDB.Sex = 1;

     MongoDBHelpers.GetMongoTest.InsertOne(testMongoDB);

2、 删除

MongoDBHelpers.GetMongoTest.DeleteOne(x => x.Name == "新增");

3、 修改

 var oldValue = Builders<TestMongoDB>.Filter.Eq("Name","新增");

var newValue= Builders<TestMongoDB>.Update

                .Set("Name", "修改")

                .Set("TestId", "3")

                .Set("Sex", "1");

 MongoDBHelpers.GetMongoTest.UpdateOne(oldValue, newValue);

4、 查询

MongoDBHelpers.GetMongoTest.Find(x => x.Name == "新增").ToListAsync().GetAwaiter().GetResult();

在MongoDB的操作中会发现,与以往的SqlServer,Oracle的操作有点不同,修改的操作相对较为麻烦一点。但现在我们也完成了在.Net Core中对MongoDB的操作了。

四、查看MongoDB中的数据(Linux、客户端Studio 3T)

首先我们来了解在Linux中如何查看MongoDB数据库使用情况:

登录mongodb

 mongo

查看数据库

 show dbs

使用操作某一个数据库(使用admin)

  use admin

操作数据

 db.Person.find()  //查询

db.Person.remove({"Name":"新增"})  //删除

db.Person.insert({"Name":"新增"}  //新增

db.Person.update({"Name":"新增"},{"Name":"修改"})   修改

上面就是Linux的一些操作,我们再看下如果实在windows上我们怎么去查看情况以及操作呢

Windows使用MongoDB的话需要下载客户端Studio 3T:https://studio3t.com/download/

然后按照提示一步一步安装即可,成功之后我们打开程序。

首先去创建一个连接

这里输入你MongoDB部署的ip地址即可连接,连接成功就可以对可以对MongoDB进行操作了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Linyb极客之路

springboot实战之自定义注解扫描并动态注册bean

在项目开发中,我们可能会有这样的需求,通过注解配合AOP来实现一些业务额外功能,比如鉴权、日志记录等,更甚至我们可能会想通过注解,就可以把bean托管给spri...

1.8K30
来自专栏DotNet程序园

TomatoLog-1.1.0实现ILoggerFactory

The TomatoLog 是一个中间件,包含客户端、服务端,非常容易使用和部署。

8320
来自专栏雪雁的专栏

.NET导出Excel的四种方法及评测

导出Excel是.NET的常见需求,开源社区、市场上,都提供了不少各式各样的Excel操作相关包。本文,我将使用NPOI、EPPlus、OpenXML、Aspo...

29910
来自专栏云计算D1net

适用于多云世界的云合规策略

合规性从来都不是一件容易的事,企业的任何一个云计算承诺都可能让合作伙伴的基础设施中的一些应用程序、数据和流程陷入困境。尤其是多云模型,它为法规遵从性挑战带来新的...

8220
来自专栏中科院渣渣博肆僧一枚

Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

6620
来自专栏dotNET名人堂

.NETCore Docker实现容器化与私有镜像仓库管理

Docker是用Go语言编写基于Linux操作系统的一些特性开发的,其提供了操作系统级别的抽象,是一种容器管理技术,它隔离了应用程序对基础架构(操作系统等)的...

11530
来自专栏一个爱瞎折腾的程序猿

三行脚本让 asp.net core 附加进程调试不再头痛

在将项目升级到 asp.net core 2.2 后,很少使用 IIS Express 运行项目了,基本都是控制台运行或者写个脚本批量启动要运行的接口(多个输出...

13830
来自专栏雪雁的专栏

.NET如何生成大量随机数据

在演示Demo、数据库脱敏、性能测试中,有时需要生成大量随机数据。Bogus就是.NET中优秀的高性能、合理、支持多语言的随机数据生成库。

10640
来自专栏子翔的专栏

Go语言之旅:环境搭建

我是一名做了近十年的dotnet程序员,当然其中还使用过PHP、Javascript(NODEJS)去做过后端开发,从donnet Framework到现在的d...

16450
来自专栏DotNet Core圈圈

使用 Infer.NET 评价竞争对手

Infer.NET 是开放源代码的代码库,可用于创建概率性编程系统。我往往会将普通的计算机程序视作,主要基于有指定类型的值的变量(如有值“Q”的 char 变量...

9230

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励