`
welcome66
  • 浏览: 402152 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MongoDB常用命令之数据库和集合命令(一)

阅读更多

       MongoDB是一个NoSQL数据库系统:一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表;而每个集合中可以存储一组由列标识的记录,列是可以自由定义的,非常灵活,由一组列标识的实体的集合对应于关系数据库表中的行。

       一个mongod服务可以有建立多个数据库,每个数据库可以有多张表,这里的表名叫collection,每个collection可以存放多个文档(document),每个文档都以BSON(binary json)的形式存放于硬盘中,因此可以存储比较复杂的数据类型。它是以单文档为单位存储的,你可以任意给一个或一批文档新增或删除字段,而不会对其它文档造成影响,这就是所谓的schema-free,这也是文档型数据库最主要的优点。跟一般的key-value数据库不一样的是,它的value中存储了结构信息,所以你又可以像关系型数据库那样对某些域进行读写、统计等操作。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。Mongo还可以解决海量数据的查询效率,根据官方文档,当数据量达到50GB以上数据时,Mongo数据库访问速度是MySQL10 倍以上。

 

       简单介绍一下MongoDB的shell命令:

       

(一)数据库操作基本命令

 

1、show dbs

显示当前数据库服务器上的数据库
2、use pagedb
 切换到指定数据库pagedb的上下文,可以在此上下文中管理pagedb数据库以及其中的集合等
3、show collections
显示数据库中所有的集合(collection)
4、db.serverStatus()  
查看数据库服务器的状态。
5、查询指定数据库统计信息
use fragment

 

db.stats()
6、查询指定数据库包含的集合名称列表
db.getCollectionNames()
7、创建数据库
在MongoDB中,可以直接通过use dbname来切换到这个数据库上下文下面,系统会自动延迟创建该数据库,例如:
 
> show dbs
local   (empty)
pa_test       0.078125GB
mgt     0.078125GB
> use test
switched to db test
> db.user.save({'id':'999','name':'kk'})
> show dbs
local   (empty)
pa_test       0.078125GB
test    0.078125GB
mgt     0.078125GB
>
 先指定要创建的数据库,并且向指定其中的一个集合并插入数据后,这样数据库和集合都被创建了。
 
8、删除数据库
直接使用db.dropDatabase()即可删除数据库。
       (二)集合命令基本操作
1、创建集合
可以使用命令db.createCollection(name, { size : ..., capped : ..., max : ... } )创建集合

 

> db.createCollection('files', {'capped':true, 'size':10240, 'max':17855200})  
{ "ok" : 1 }  
> show collections  
files  
storeCollection  
system.indexes 

 2、删除集合

删除集合,可以执行db.mycoll.drop()。

3、插入更新记录

直接使用集合的save方法

 

>db.storeCollection.save({'version':'3.5', 'segment':'e3ol6'})

 更新记录,使用save会将原来的记录值进行覆盖实现记录更新。

4、查询一条记录

使用findOne()函数,参数为查询条件,可选,系统会随机查询获取到满足条件的一条记录(如果存在查询结果数量大于等于1)示例如下所示:

> db.storeCollection.findOne({'version':'3.5'})  
{  
        "_id" : ObjectId("4ef970f23c1fc4613425accc"),  
        "version" : "3.5",  
        "segment" : "e3ol6"  
}  

 5、查询多条记录

 

使用find()函数,参数指定查询条件,不指定条件则查询全部记录。

6、删除记录

使用集合的remove()方法,参数指定为查询条件,示例如下所示:

> db.storeCollection.remove({'version':'3.5'})  
> db.storeCollection.findOne()  
null 

 

7、创建索引

 

可以使用集合的ensureIndex(keypattern[,options])方法,示例如下所示:

> use pagedb  
switched to db pagedb  
> db.page.ensureIndex({'title':1, 'url':-1})  
> db.system.indexes.find()  
{ "name" : "_id_", "ns" : "pagedb.page", "key" : { "_id" : 1 }, "v" : 0 }  
{ "name" : "_id_", "ns" : "pagedb.system.users", "key" : { "_id" : 1 }, "v" : 0}  
{ "_id" : ObjectId("4ef977633c1fc4613425accd"), "ns" : "pagedb.page", "key" : {"title" : 1, "url" : -1 }, "name" : "title_1_url_-1", "v" : 0 }  

上述,ensureIndex方法参数中,数字1表示升序,-1表示降序。

 

使用db.system.indexes.find()可以查询全部索引。

8、查询索引

我们为集合建立的索引,那么可以通过集合的getIndexes()方法实现查询,示例如下所示:

> db.page.getIndexes()  
[  
        {  
                "name" : "_id_",  
                "ns" : "pagedb.page",  
                "key" : {  
                        "_id" : 1  
                },  
                "v" : 0  
        },  
        {  
                "_id" : ObjectId("4ef977633c1fc4613425accd"),  
                "ns" : "pagedb.page",  
                "key" : {  
                        "title" : 1,  
                        "url" : -1  
                },  
                "name" : "title_1_url_-1",  
                "v" : 0  
        }  
]  

当然,如果需要查询系统中全部的索引,可以使用db.system.indexes.find()函数。

9、删除索引

 

删除索引给出了两个方法:

db.mycoll.dropIndex(name)  
db.mycoll.dropIndexes() 

第一个通过指定索引名称,第二个删除指定集合的全部索引。

 

10、索引重建

可以通过集合的reIndex()方法进行索引的重建,示例如下所示:

> db.page.reIndex()  
{  
        "nIndexesWas" : 2,  
        "msg" : "indexes dropped for collection",  
        "ok" : 1,  
        "nIndexes" : 2,  
        "indexes" : [  
                {  
                        "name" : "_id_",  
                        "ns" : "pagedb.page",  
                        "key" : {  
                                "_id" : 1  
                        },  
                        "v" : 0  
                },  
                {  
                        "_id" : ObjectId("4ef977633c1fc4613425accd"),  
                        "ns" : "pagedb.page",  
                        "key" : {  
                                "title" : 1,  
                                "url" : -1  
                        },  
                        "name" : "title_1_url_-1",  
                        "v" : 0  
                }  
        ],  
        "ok" : 1  
}  

11、统计集合记录数

use fragment

db.baseSe.count()
统计结果,如下所示:

 

> use fragment  
switched to db fragment  
> db.baseSe.count()  
36749 

 

上述统计了数据库fragment的baseSe集合中记录数。
12、查询并统计结果记录数

use fragment

db.baseSe.find().count()

find()可以提供查询参数,然后查询并统计结果,如下所示:

> use fragment  
switched to db fragment  
> db.baseSe.find().count()  
36749  

上述执行先根据查询条件查询结果,然后统计了查询数据库fragment的baseSe结果记录集合中记录数。

13、查询指定数据库的集合当前可用的存储空间

use fragment
> db.baseSe.storageSize()
142564096

14、查询指定数据库的集合分配的存储空间

> db.baseSe.totalSize()
144096000

 上述查询结果中,包括为集合(数据及其索引存储)分配的存储空间。

 

 

 

 

 

分享到:
评论

相关推荐

    mongodb常用命令大全

    ### MongoDB常用命令详解 #### 一、数据库管理 在MongoDB中,数据库是存储文档的容器,通过一系列的命令可以方便地对数据库进行管理和操作。 ##### 1. 帮助命令 (Help) - **命令格式**: `help`, `db.help()`, `db...

    MongoDB数据库常用命令.docx

    MongoDB 数据库常用命令大全 MongoDB 是 NoSQL 数据库系统中比较流行的数据库之一。它也是最接近关系型数据库的,一个数据库可以包含多...这些 MongoDB 数据库常用命令可以帮助我们更好地管理和使用 MongoDB 数据库。

    MongoDB数据库常用操作命令8.pdf

    MongoDB是一种流行的开源文档型数据库,属于NoSQL数据库系统,以其灵活性、可扩展性和高性能而受到广泛使用。本文将深入探讨在MongoDB中常见的数据库操作命令,这些命令对于理解和操作MongoDB至关重要。 首先,让...

    MongoDB常用命令汇总

    包含对数据库、集合、文档的常用操作。

    mongodb常用命令.docx

    MongoDB是一种基于分布式文件存储的开源数据库系统,以其强大的查询语言、灵活性和高可扩展性在处理大量数据时表现出色。MongoDB的核心特点是文档导向,这意味着数据以BSON(Binary JSON)格式存储,这是一种轻量级...

    Mongodb常用命令和java调用

    MongoDB 提供了一个交互式的shell,可用于管理数据库,包括用户认证、查看和操作数据库、创建和删除集合、监控复制状态、修复数据库、设置性能日志(profiling)以及数据迁移等任务。例如,通过`use`命令切换数据库...

    MongoDB数据库常用操作命令1.pdf

    以下是对MongoDB数据库和集合常用操作的详细说明: 1. **创建数据库** - 在MongoDB中,创建数据库非常简单,只需使用`use`命令指定数据库名称。例如,`use myDatabase`会切换到名为`myDatabase`的数据库。如果该...

    MongoDB常用操作命令大全

    MongoDB常用操作命令大全 数据库常用命令 Collection聚集集合 用户相关 聚集集合查询

    MongoDB常用命令

    在本文中,我们将介绍一些 MongoDB 常用的命令,包括集合命令、数据库命令和其他命令。 集合命令 1. `db.collection.count()`: 返回与集合或视图的 find() 查询匹配的文档数。 2. `db.collection.countDocuments()...

    mongodb 数据库常用命令大全手册

    以下是对MongoDB数据库常用命令的详细介绍: 1. **连接数据库**:使用`mongo`命令启动MongoDB shell,连接到默认的`test`数据库。若要连接到特定数据库,如`mydb`,可执行`use mydb`。 2. **显示所有数据库**:`...

    mongoDB常用命令1

    MongoDB 是一种流行的开源文档型数据库,以其灵活性...以上就是MongoDB中涉及的一些常用命令,它们涵盖了数据库管理、集合操作、用户管理和数据查询等多个方面。理解并熟练掌握这些命令对于日常的MongoDB操作至关重要。

    MongoDB常用命令手册.zip

    本手册涵盖了MongoDB的基础操作,旨在帮助初学者快速掌握其核心命令,以下是15条常用命令的详细说明: 1. **启动MongoDB服务**:在命令行中输入`mongod`启动MongoDB服务器,通常需要指定数据存储目录,如`mongod --...

    MongoDB数据库常用操作命令3.pdf

    本文将深入探讨在MongoDB中执行的一些常用操作命令,这对于理解和操作MongoDB数据库至关重要。 1. **查看当前连接的数据库** 使用 `db.getMongo()` 命令可以获取当前MongoDB实例的连接信息,包括服务器地址和端口...

    mongodb常用管理命令.pdf

    接下来将详细介绍文档中出现的MongoDB常用管理命令及其相关的知识点。 1. 启动MongoDB服务 - `mongod` 是MongoDB数据库服务器的命令行工具,用于启动数据库实例。 - 通常需要指定`--dbpath`参数来指定数据库存储...

    MongoDB常用数据库命令大全

    本文将详细讲解MongoDB的一些常用数据库命令,包括数据库操作、集合操作、用户管理和查询操作。 1. **数据库操作** - **查看命令提示**:`help` 和 `db.help()` 可用于获取数据库层面的帮助信息,而`db.yourColl....

    MongoDB数据库管理工具

    MongoVUE是其中的一款常用工具,它提供了直观的图形用户界面(GUI),使得数据库的管理和维护变得更加便捷。 MongoDB的核心知识点包括: 1. 数据模型:MongoDB采用文档型数据模型,文档是JSON(JavaScript Object ...

    mongodb 操作命令(全)

    MongoDB 是一个高性能、无模式的分布式文档型数据库,它以其灵活性、可扩展性和高性能而受到广泛应用。在MongoDB中,数据以JSON格式的文档存储,这使得它非常适合处理复杂的数据结构。以下是一些主要的MongoDB操作...

    MongoDB数据库常用操作命令11.pdf

    以下是对MongoDB数据库常用操作命令的详细解释: 1. **读取当前集合的所有index信息** 使用`db.collection.reIndex()`命令可以重新构建集合的所有索引。这并非获取索引信息,但可以确保索引是最新的。要查看当前...

    MongoDB数据库常用操作命令4.pdf

    本文将深入探讨在MongoDB中执行的一些常用操作命令,这些命令对于管理和维护MongoDB数据库至关重要。 1. **创建用户和权限管理** - `db.addUser("name")`: 这个命令用于在当前数据库中创建一个新的用户。"name"是...

    MongoDB常用的操作命令.txt

    ### MongoDB常用操作命令详解 #### 一、启动与配置MongoDB...以上就是关于MongoDB常用操作命令的详细介绍,涵盖了启动配置、基本数据库操作及数据操作等方面的内容。希望这些信息能帮助您更好地理解和使用MongoDB。

Global site tag (gtag.js) - Google Analytics