(转载)MongoDB数据库存储

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
云数据库 MongoDB,通用型 2核4GB
简介: 每个 MongoDB 服务器都支持多个数据库。每个数据库都是相对独立的,并且出于安全性和为了方便管理,数据库的数据也独立存储。 Mongo元数据 在MongoDB数据库中名字空间 .system.* 是包含多种系统信息的特殊集合(Collection),如下: system.namespaces 列出所有名字空间。

每个 MongoDB 服务器都支持多个数据库。每个数据库都是相对独立的,并且出于安全性和为了方便管理,数据库的数据也独立存储。

Mongo元数据

在MongoDB数据库中名字空间 <dbname>.system.* 是包含多种系统信息的特殊集合(Collection),如下:

  • system.namespaces 列出所有名字空间。
  • system.indexes 列出所有索引。
  • 附加的名字空间(namespace)和索引(index)的元数据保存在database.ns中,是混淆后的形式。
  • system.profile 包含数据库概要(profile)信息。
  • system.users 列出所有可访问数据库的用户。
  • local.sources 包含复制对端(slave)的服务器信息和状态。
  • 对象的结构信息存储在对象内,参见BSON

对于修改系统集合中的对象有如下限制。在{{system.indexes}}插入数据,可以创建索引。但除此之外该表信息是不可变的(特殊的drop index命令将自动更新相关信息)。 {{system.users}}是可修改的。  {{system.profile}}是可删除的。

注意: $ 是保留字符。请不要在名字空间或字段的名字中使用。内部的索引相关的集合将在名字中使用 $ 字符。而这些集合保存为B-tree集的形式(无法用直接查询)。

数据库指令

介绍

Mongo数据库有数据库指令(database command)概念。使用这些命令可以让数据库执行某中操作或是返回有关数据库当前状态的某些信息。

  • [数据库指令列表]

一条指令将被作为针对 $cmd 集合的一种特殊的查询语句发送到数据库。数据库执行后,将返回一个单文档对象作为命令的返回结果,可以用 findOne() 获得。

基本的命令格式为:

db.$cmd.findOne( { <commandname>: <value> [, options] } ); 

在命令行环境下,可以执行:

db.runCommand( { <commandname>: <value> [, options] } ); 

例如,检查当前数据库profile level的设置,可以执行:

> db.runCommand({profile:-1}); 
{ 
"was" : 0.0 , 
"ok" : 1.0 
} 

多数数据库驱动提供了对数据库指令的封装方法,以方便使用。例如mongo shell 提供

> db.getProfilingLevel() 
0.0 

该方法的实现如下:

> print( db.getProfilingLevel ) 
function () { 
var res = this._dbCommand({profile:-1}); 
return res ? res.was : null; 
} 

> print( db._dbCommand ) 
function (cmdObj) { 
return this.$cmd.findOne(cmdObj); 
} 

多数指令都有类似的简便用法 - 参见各数据库驱动的相关文档。

特权指令

某些特殊的操作只有管理员才能执行。这些特殊的操作将在{{admin}}数据库中执行。

> use admin; 
> db.runCommand("shutdown"); // shut down the database 

如果当前数据库不是'admin', 你可以直接使用_adminCommand方法去操作:

> db._adminCommand("shutdown"); 

(对于这个操作,还有简便用法db.shutdownServer。)

获得指令帮助信息

使用commandHelp命令去获得某个指令的相关信息:

> db.commandHelp("datasize") 
help for: datasize example: { datasize:"blog.posts", keyPattern:{x:1}, min:{x:10}, max:{x:55} } 
NOTE: This command may take awhile to run 

(某些指令还没有完整的帮助信息.)

一个数据库可以包括一个或多个集,每个集中可以存放文档对象,同时可以为操作这些内容设置一个可选的安全认证。

  • Mongo元数据
  • 数据库指令
    • 克隆数据库
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
24天前
|
存储 关系型数据库 分布式数据库
PolarDB,阿里云的云原生分布式数据库,以其存储计算分离架构为核心,解决传统数据库的扩展性问题
【7月更文挑战第3天】PolarDB,阿里云的云原生分布式数据库,以其存储计算分离架构为核心,解决传统数据库的扩展性问题。此架构让存储层专注数据可靠性,计算层专注处理SQL,提升性能并降低运维复杂度。通过RDMA加速通信,多副本确保高可用性。资源可独立扩展,便于成本控制。动态添加计算节点以应对流量高峰,展示了其灵活性。PolarDB的开源促进了数据库技术的持续创新和发展。
239 2
|
29天前
|
存储 JSON NoSQL
深入解析MongoDB的存储原理
深入解析MongoDB的存储原理
深入解析MongoDB的存储原理
|
22天前
|
NoSQL JavaScript 前端开发
JavaScript与数据库MongoDB的联动
JavaScript和MongoDB结合,构建Web应用的关键技术。MongoDB,作为NoSQL数据库,以其灵活性和高性能深受开发者喜爱。本文探讨两者的基本概念,如JavaScript在前端交互和后端数据处理的作用,MongoDB的文档存储和查询特性。通过Node.js和mongoose库,展示了连接数据库、定义数据模型及增删改查操作的代码示例。强调了性能优化(如索引、批量操作)和安全措施(如权限控制、数据加密)的重要性。最后,提供了一个简单的CRUD应用示例,涵盖Express和前端API调用。
18 0
|
23天前
|
存储 JavaScript 前端开发
文本,三步走构思,富文本点击提交能够存储到数据库当中(下),最快的方法,还是会看资料,因此会整合资料最好,直接看资料最快,因为是JWT的资料,我们要设置好登录的内容,看登录的地方怎样写的
文本,三步走构思,富文本点击提交能够存储到数据库当中(下),最快的方法,还是会看资料,因此会整合资料最好,直接看资料最快,因为是JWT的资料,我们要设置好登录的内容,看登录的地方怎样写的
|
25天前
|
NoSQL MongoDB 数据库
MongoDB的GUI工具——Robo 3T连接远程数据库MongoDB
MongoDB的GUI工具——Robo 3T连接远程数据库MongoDB
27 0
|
25天前
|
NoSQL Java MongoDB
如何在Spring Boot应用中集成MongoDB数据库
如何在Spring Boot应用中集成MongoDB数据库
|
1月前
|
存储 SQL Oracle
主流关系型数据库存储架构层的差异分析
主流关系型数据库存储架构层的差异分析
|
1月前
|
NoSQL Java 关系型数据库
非关系型数据库NoSQL数据层解决方案 之 Mongodb 简介 下载安装 springboot整合与读写操作
非关系型数据库NoSQL数据层解决方案 之 Mongodb 简介 下载安装 springboot整合与读写操作
42 0
|
JSON NoSQL Java
mongoDB导出数据库所有集合内容到json文件
网上搜了一圈,官方并有提供批量导出所有集合到json文件的方法。有不少脚本可以实现,但是我还是习惯用java,如下 package starcLL.
2178 0
|
1月前
|
存储 JSON NoSQL
【文档数据库】ES和MongoDB的对比
【文档数据库】ES和MongoDB的对比
196 1