MongoDB基本增删改查

一、MongoDB应用场景及特点

1、数据模型

一个MongoDB 实例可以包含一组数据库,一个DataBase 可以包含一组Collection(集合),一个集合可以包含一组Document(文档)。一个Document包含一组field(字段),每一个字段都是一个key/value pair。

key: 必须为字符串类型。

value:可以包含如下类型。

● 基本类型,例如,string,int,float,timestamp,binary 等类型。

● 一个document。

● 数组类型。

2、不适用的系统:

1)要求高度事务性的系统。

2)传统的商业智能应用。

3)复杂的跨文档(表)级联查询。

3、基本概念

(1)文档

文档是 MongoDB 中数据的基本单位,类似于关系数据库中的行(但是比行复杂)。多个键及其关联的值有序地放在一起就构成了文档。不同的编程语言对文档的表示方法不同,在JavaScript 中文档表示为:

{“greeting”:“hello,world”}

这个文档只有一个键“greeting”,对应的值为“hello,world”。多数情况下,文档比这个更复杂,它包含多个键/值对。例如:

{“greeting”:“hello,world”,“foo”: 3}

文档中的键/值对是有序的,下面的文档与上面的文档是完全不同的两个文档。

{“foo”: 3 ,“greeting”:“hello,world”}

文档中的值不仅可以是双引号中的字符串,也可以是其他的数据类型,例如,整型、布尔型等,也可以是另外一个文档,即文档可以嵌套。文档中的键类型只能是字符串。

(2)集合

集合就是一组文档,类似于关系数据库中的表。集合是无模式的,集合中的文档可以是各式各样的。例如,{“hello,word”:“Mike”}和{“foo”: 3},它们的键不同,值的类型也不同,但是它们可以存放在同一个集合中,也就是不同模式的文档都可以放在同一个集合中。既然集合中可以存放任何类型的文档,那么为什么还需要使用多个集合?这是因为所有文档都放在同一个集合中,无论对于开发者还是管理员,都很难对集合进行管理,而且这种情形下,对集合的查询等操作效率都不高。所以在实际使用中,往往将文档分类存放在不同的集合中,例如,对于网站的日志记录,可以根据日志的级别进行存储,Info级别日志存放在Info 集合中,Debug 级别日志存放在Debug 集合中,这样既方便了管理,也提供了查询性能。但是需要注意的是,这种对文档进行划分来分别存储并不是MongoDB 的强制要求,用户可以灵活选择。

可以使用“.”按照命名空间将集合划分为子集合。例如,对于一个博客系统,可能包括blog.user 和blog.article 两个子集合,这样划分只是让组织结构更好一些,blog 集合和blog.user、blog.article 没有任何关系。虽然子集合没有任何特殊的地方,但是使用子集合组织数据结构清晰,这也是MongoDB 推荐的方法。

(3)数据库

MongoDB 中多个文档组成集合,多个集合组成数据库。一个MongoDB 实例可以承载多个数据库。它们之间可以看作相互独立,每个数据库都有独立的权限控制。在磁盘上,不同的数据库存放在不同的文件中。MongoDB 中存在以下系统数据库。

● Admin 数据库:一个权限数据库,如果创建用户的时候将该用户添加到admin 数据库中,那么该用户就自动继承了所有数据库的权限。

● Local 数据库:这个数据库永远不会被复制,可以用来存储本地单台服务器的任意集合。

● Config 数据库:当MongoDB 使用分片模式时,config 数据库在内部使用,用于保存分片的信息。

二、MongoDB下载安装启动

1、下载地址:MongoDB Community Download | MongoDB

2、windows下安装

1)、解压zip文件

2)、在bin目录同级目录下新建data文件夹,data文件夹内新建db文件夹保存数据目录。

3)、在bin目录同级目录新建conf文件夹保存配置文件夹,在文件夹内新建mongod.conf文件配置文件。

2-1、启动MongoDB

1、第一种:cmd直接启动

E:\programfiles\mongodb-win32-x86_64-windows-4.4.14\bin>mongod --dbpath=E:\programfiles\mongodb-win32-x86_64-windows-4.4.14\data\db
{"t":{"$date":"2022-06-18T10:04:24.593+08:00"},"s":"I",  "c":"CONTROL",  "id":23285,   "ctx":"main","msg":"Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'"}
......
{"t":{"$date":"2022-06-18T10:04:31.190+08:00"},"s":"I",  "c":"NETWORK",  "id":23015,   "ctx":"listener","msg":"Listening on","attr":{"address":"127.0.0.1"}}
{"t":{"$date":"2022-06-18T10:04:31.190+08:00"},"s":"I",  "c":"NETWORK",  "id":23016,   "ctx":"listener","msg":"Waiting for connections","attr":{"port":27017,"ssl":"off"}}
......



2、第二种:使用配置文件的方式启动
 

E:\programfiles\mongodb-win32-x86_64-windows-4.4.14\bin>mongod -f E:\programfiles\mongodb-win32-x86_64-windows-4.4.14\conf\mongod.conf
{"t":{"$date":"2022-06-18T10:13:05.279+08:00"},"s":"I",  "c":"CONTROL",  "id":23285,   "ctx":"main","msg":"Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'"}
......


3、第二种以配置文件方式启动

E:\programfiles\mongodb-win32-x86_64-windows-4.4.14\bin>mongod --config E:\programfiles\mongodb-win32-x86_64-windows-4.4.14\conf\mongod.conf
{"t":{"$date":"2022-06-18T10:14:05.429+08:00"},"s":"I",  "c":"CONTROL",  "id":23285,   "ctx":"main","msg":"Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'"}
......

2-2、shell或cmd窗口连接到MongoDB数据库

1、直接mongo
 

E:\programfiles\mongodb-win32-x86_64-windows-4.4.14\bin>mongo
MongoDB shell version v4.4.14
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("0ff2ecee-02a8-4562-867b-10709860f00c") }
MongoDB server version: 4.4.14
Welcome to the MongoDB shell.
......
       To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---
>



2、第二种方式连接

E:\programfiles\mongodb-win32-x86_64-windows-4.4.14\bin>mongo --host=127.0.0.1 --port=27017
MongoDB shell version v4.4.14
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("20585e17-f3cf-468b-8bc2-c98e1177d0c7") }
......
       To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
>

3、Linux下安装部署MongoDB

1)、上传MongoDB的mongodb-linux-x86_64-rhel70-4.4.14.tgz文件到Linux系统重命名为mongodb,并解压、移动到/usr/local目录。

2)、新建data文件目录:mkdir -p /mongodb/si

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 C# 连接 MongoDB 进行增删的示例代码: 1. 安装 MongoDB 驱动程序 使用 NuGet 安装 MongoDB 驱动程序,可以在 Visual Studio 中搜索并安装 "MongoDB.Driver" 包。 2. 建立数据库连接 首先,您需要建立与 MongoDB 的连接。在 C# 中,可以使用 `MongoClient` 类来建立连接。 ```csharp using MongoDB.Driver; // 建立连接 var client = new MongoClient("mongodb://localhost:27017"); // 获取数据库 var database = client.GetDatabase("your_database_name"); ``` 3. 插入数据 使用 `InsertOne` 方法向 MongoDB 插入一条文档。 ```csharp using MongoDB.Bson; using MongoDB.Driver; // 获取集合 var collection = database.GetCollection<BsonDocument>("your_collection_name"); // 创建文档 var document = new BsonDocument { { "name", "John Doe" }, { "age", 30 }, { "city", "New York" } }; // 插入文档 collection.InsertOne(document); ``` 4. 询数据 使用 `Find` 方法从 MongoDB询数据。 ```csharp using MongoDB.Bson; using MongoDB.Driver; // 获取集合 var collection = database.GetCollection<BsonDocument>("your_collection_name"); // 询文档 var filter = Builders<BsonDocument>.Filter.Eq("name", "John Doe"); var result = collection.Find(filter).ToList(); // 打印结果 foreach (var document in result) { Console.WriteLine(document); } ``` 5. 更新数据 使用 `UpdateOne` 方法更新 MongoDB 中的数据。 ```csharp using MongoDB.Bson; using MongoDB.Driver; // 获取集合 var collection = database.GetCollection<BsonDocument>("your_collection_name"); // 更新文档 var filter = Builders<BsonDocument>.Filter.Eq("name", "John Doe"); var update = Builders<BsonDocument>.Update.Set("age", 35); collection.UpdateOne(filter, update); ``` 6. 删除数据 使用 `DeleteOne` 方法从 MongoDB 中删除数据。 ```csharp using MongoDB.Bson; using MongoDB.Driver; // 获取集合 var collection = database.GetCollection<BsonDocument>("your_collection_name"); // 删除文档 var filter = Builders<BsonDocument>.Filter.Eq("name", "John Doe"); collection.DeleteOne(filter); ``` 以上代码是基本增删操作示例,您可以根据具体需求进行扩展和修。请注意替换示例代码中的数据库名称和集合名称为您实际使用的名称。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值