MongoDB:解读运行机制(mongodb进程)

MongoDB是当下较为流行的NoSQL数据库,它拥有灵活弹性、高可用性、和高效性等优点。要精通MongoDB,就必须要先理解其底层的运行机制。本文将详细介绍MongoDB的运行机制,包括:MongoDB管理的数据结构,和访问的查询路径。

### 一、MongoDB管理的数据结构

MongoDB管理的数据储存在BSON(Binary JSON)格式的文档中,BSON是一种可传输的,面向文档的类型。每一个文档(document)就包含了键值对,可以看成是由字段(field)和值(value)组成的记录(record),字段名就是键,字段值(value)就是值,多个文档形成一组记录,该组记录被称为collection。MongoDB文档中的键和值有一定的结构,也支持复杂的数据类型,比如XML,JSON等格式的文本,非文本形式的数据,以及函数。

### 二、MongoDB访问的查询路径

MongoDB在处理读写数据时,会形成一个查询路径的链。MongoDB的数据连接处理模式如下:首先用户发出查询请求,连接会把命令中的请求信息拆分成一个个细粒度的操作。接着,按照DBCommand会在MongoDB实例中运行,然后就是缓存造就查询操作到连接中。最后查询结果返回到用户处。MongoDB会在查询路径中尽可能的使用缓存去提高查询性能,当有读/写更新时,关联缓存也会及时更新。

### 三、MongoDB支持的操作

MongoDB支持CRUD(增Create,查Retrieve,改Update,删Delete)和特殊操作的功能。CRUD操作是基本的,而特殊操作则是MongoDB的特有操作,例如MapReduce,GridFS,索引等。MongoDB支持的主要操作如下:

**1. insert()**

insert()操作可以将document添加到数据集中,你可以使用insert()操作对单个文档或多个文档添加。

“`js

// 单条数据添加

db.Test.insert(

{

“name” : “John”,

“age” : 25

});

// 批量数据添加

db.Test.insert(

[

{

“name” : “Tina”,

“age” : 21

},

{

“name” : “Joy”,

“age” : 27

}

]);


**2. save()**
save()操作可以将文档保存到数据集中,但是当文档有相同的主键值时,save()会覆盖此文档的内容:
```js
// 保存数据
db.Test.save(
{
"name" : "John",
"age" : 25
});

**3. find()**

find()操作可以从数据集中构建结果集,它将显示结果集中文档的原始格式:

“`js

// 查询数据

db.Test.find(

{

“name” : “John”

});


**4. update()**

update()操作可用于改变结果集中文档的值:

```js
// 更新数据
db.Test.update(
{
"name" : "John"
},
{
$set:
{
"age" : 26
}
});

**5. remove()**

remove()操作可以从数据集中删除结果集中文档:

“`js

// 删除数据

db.Test.remove(

{

“name” : “John”

});


MongoDB使用BSON文档来管理数据,从而可以使数据储存更加的灵活、便捷和高效。通过熟悉MongoDB的运行机制,可以更好的操作和使用它。

数据运维技术 » MongoDB:解读运行机制(mongodb进程)