(转载)MongoDB数据库存储

本文涉及的产品
云数据库 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
目录
相关文章
|
3天前
|
NoSQL MongoDB 数据库
MongoDB数据恢复—MongoDB数据库文件被破坏的数据恢复案例
服务器数据恢复环境: 一台Windows Server操作系统服务器,服务器上部署MongoDB数据库。 MongoDB数据库故障&检测: 工作人员在未关闭MongoDB数据库服务的情况下,将数据库文件拷贝到其他分区。拷贝完成后将原MongoDB数据库所在分区进行了格式化操作,然后将数据库文件拷回原分区,重新启动MongoDB服务,服务无法启动。
|
6天前
|
NoSQL MongoDB Redis
Python与NoSQL数据库(MongoDB、Redis等)面试问答
【4月更文挑战第16天】本文探讨了Python与NoSQL数据库(如MongoDB、Redis)在面试中的常见问题,包括连接与操作数据库、错误处理、高级特性和缓存策略。重点介绍了使用`pymongo`和`redis`库进行CRUD操作、异常捕获以及数据一致性管理。通过理解这些问题、易错点及避免策略,并结合代码示例,开发者能在面试中展现其技术实力和实践经验。
128 8
Python与NoSQL数据库(MongoDB、Redis等)面试问答
|
8天前
|
存储 关系型数据库 MySQL
如何处理爬取到的数据,例如存储到数据库或文件中?
处理爬取的数据,可存储为txt、csv(适合表格数据)或json(适合结构化数据)文件。若需存储大量数据并执行复杂查询,可选择关系型(如MySQL)或非关系型(如MongoDB)数据库。以MySQL为例,需安装数据库和Python的pymysql库,创建数据库和表,然后编写Python代码进行数据操作。选择存储方式应考虑数据类型、数量及后续处理需求。
17 1
|
11天前
|
存储 JSON NoSQL
MongoDB的文档存储格式BSON和JSON的区别
MongoDB的文档存储格式BSON和JSON的区别
|
14天前
|
存储 SQL Oracle
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
36 7
|
22天前
|
数据库 存储 BI
SAP ABAP CDS View 源代码存储的数据库表揭秘和其他相关数据库表介绍试读版
SAP ABAP CDS View 源代码存储的数据库表揭秘和其他相关数据库表介绍试读版
12 0
SAP ABAP CDS View 源代码存储的数据库表揭秘和其他相关数据库表介绍试读版
|
1月前
|
存储 SQL 数据库
C# 将 Word 转文本存储到数据库并进行管理
C# 将 Word 转文本存储到数据库并进行管理
|
1月前
|
NoSQL 网络协议 MongoDB
Windows公网远程连接MongoDB数据库【无公网IP】
Windows公网远程连接MongoDB数据库【无公网IP】
|
1月前
|
存储 NoSQL 关系型数据库
一篇文章带你搞懂非关系型数据库MongoDB
一篇文章带你搞懂非关系型数据库MongoDB
58 0
|
7天前
|
关系型数据库 MySQL 分布式数据库
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
37 2