1. 数据库操作

看完前面的文章,大家应该把环境搭建好了,下面我们就开始学习MongoDB的一些基本操作了。

首先我们要了解的一些要点:

MongoDB将数据存储为一个文档,数据结构由键值对(key=>value)组成

MongoDB文档类似于JSON对象,字段值可以包含其他文档、数组、文档数组

其次就是SQL术语和MongoDB术语的对比:

学过MySQL的同学就很好对比了,三个主要的:数据库、集合、文档

集合就是MySQL中的表

文档就是MySQL中的行

文档:就是一个对象,由键值对构成,是json的扩展Bson形式。

{'name':'guojing','gender':'男'}

集合:类似于MySQL中的表,储存多个文档,结构不固定,如可以储存如下文档在一个集合中。

{'name':'guojing','gender':'男'}
{'name':'huangrong','age':''}
{'book':'shuihuzhuan','heros':''}

数据库:是一个集合的物理容器,一个数据库中可以包含多个文档。

一个服务器通常有多个数据库。

1.1 创建数据库

MongoDB使用use DATABASE_NAME命令来创建数据库。如果指定的数据库DATABASE_NAME不存在,则该命令将创建一个新的数据库,否则返回现有的数据库。

语法:

use DATABASE_NAME

如果要创建一个名称为newdb的数据库,那么使用use DATABASE_NAME语句将如下所示:

> use newdb
switched to db newdb

1.2 查看当前选择的数据库

输入db命令就可查询:

>db
newdb

1.3 查看数据库列表

如果要检查数据库列表,请使用命令show dbs。

>show dbs
local 0.000025GB
test 0.00002GB

创建的数据库newdb不在列表中。要显示数据库,需要至少插入一个文档,空的数据库是不显示出来的。

>db.items.insert({"name":"yiibai tutorials"})
>show dbs
local 0.00005GB
test 0.00002GB
newdb 0.00002GB

在 MongoDB 中默认数据库是:test。 如果您还没有创建过任何数据库,则集合/文档将存储在test数据库中。

1.4 删除数据库

MongoDB中的db.dropDatabase()命令用于删除现有的数据库。

db.dropDatabase()

这将删除当前所选数据库。 如果没有选择任何数据库,那么它将删除默认的test数据库。

删除例子:

首先,使用命令show dbs检查可用数据库的列表。

>show dbs
local 0.00025GB
newdb 0.0002GB
test 0.00012GB
>

如果要删除新数据库newdb,那么dropDatabase()命令将如下所示:

>use newdb
switched to db newdb
>db.dropDatabase()
>{ "dropped" : "newdb", "ok" : 1 }
>

现在检查数据库列表

>show dbs
local 0.00025GB
test 0.0002GB
>

2. 集合操作

2.1 创建集合

MongoDB 的db.createCollection(name , options)方法用于在MongoDB 中创建集合。

语法:

db.createCollection(name, options)

在命令中,name是要创建的集合的名称。options是一个文档,用于指定集合的配置。

options参数是可选的,因此只需要指定集合的名称。 以下是可以使用的选项列表:

在插入文档时,MongoDB首先检查上限集合capped字段的大小,然后检查max字段。

例子:

没有使用选项的createCollection()方法的基本语法如下 :

>use test
switched to db test
>db.createCollection("mycollection")
{ "ok" : 1 }
>

可以使用命令show collections检查创建的集合。

>show collections
mycollection

以下示例显示了createCollection()方法的语法,其中几个重要选项

> db.createCollection("mycol", {capped : true, autoIndexId : true, size : 6142800, max : 10000 })
{ "ok" : 1 }
>

在MongoDB中,不需要创建集合。当插入一些文档时,MongoDB 会自动创建集合。

>db.newcollection.insert({"name" : "yiibaitutorials"})
>show collections
mycol
newcollection
mycollection
>

2.2 删除集合

MongoDB 的db.collection.drop()用于从数据库中删除集合。

语法:

db.COLLECTION_NAME.drop()

例子:

首先,检查数据库test中可用的集合。

>use test
switched to db test
> show collections
mycol
mycollection
newcollection
>

现在删除名称为mycollection的集合。

>db.mycollection.drop()
true
>

再次检查当前数据库的集合列表,如下:

> show collections
mycol
newcollection
>

MongoDB(三):数据库操作、集合操作的更多相关文章

  1. python基础之 列表、元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...

  2. mongodb安装,库操作,集合操作(表),文档操作(记录)

    安装 1.下载地址 https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-4.0.8-signed.msi 2.如果报没 ...

  3. mongodb的数据库,集合,数据可介绍。

    我们知道,在关系型数据库里面有数据库.数据表.表里面是一行一行的数据.而mongodb是非关系型数据库,它有的是数据库.集合.文档,分别对应关系型里面的数据库.数据表.和表里面一行一行的数据.在mon ...

  4. MongoDB创建数据库和集合命令db.createCollection详解(转)

    切换/创建数据库 use yourDB;  当创建一个集合(table)的时候会自动创建当前数据库 完整的命令如下:db.createCollection(name, {capped: <Boo ...

  5. MongoDB 新建数据库和集合 查询集合

    MongoDB语法是原生ORM,根本不存在sql语句 创建数据库:这里和一般的关系型数据库一样,都要先建立一个自己的数据库空间 新建数据库db1 > use db1 switched to db ...

  6. MongoDB 基本操作 数据库、集合

    一.数据库创建与删除 查看当前所有的数据库 show das/show databases 查看当前数据库 db 创建数据库 use hopedb db.dropDatabase()  删除当前数据库 ...

  7. Mongodb中 数据库和集合的创建与删除

    1.查询数据库,查询表: show dbs //查询所有的数据库show collections //查询所有的集合(表) 2.创建数据库或切换到数据库(存在就切换,不存在就创建) use spide ...

  8. Oracle 集合操作

    在 Oracle 中提供了三种类型集合操作:并(UNION).交(INTERSECT).差(MINUS) · UNION:将多个查询的结果组合到一个查询结果之中,没有重复内容 · UNION ALL: ...

  9. MongoDB数据库、集合、文档的操作

    MongoDB系列第一课:MongDB简介 MongoDB系列第二课:MongDB环境搭建 MongoDB系列第三课:MongDB用户管理 MongoDB系列第四课:MongoDB数据库.集合.文档的 ...

随机推荐

  1. 谈谈.net对象生命周期

     不用程序员操心的堆 — 托管堆         程序在计算机上跑着,就难免会占用内存资源来存储在程序运行过程中的数据,我们按照内存资源的存取方式将内存划分为堆内存和栈内存.    栈内存,通常使用的 ...

  2. ELK的简单搭建

    Environment  (都需要Java环境,jdk){ elasticsearch kibana 安装nginx用以测试 logstash } 1.首先拉取软件包,给予Java语言开发首选配置Ja ...

  3. Modelarts与无感识别技术生态总结(浅出版)

    [摘要] Modelarts技术及相关产业已成为未来AI与大数据重点发展行业模式之一,为了促进人工智能领域科学技术快速发展,modelarts现状及生态前景成为研究热点.笔者首先总结modelarts ...

  4. 宜信SDL实践:产品经理如何驱动产品安全建设

    一.序言 本文从产品经理的角度出发,对产品经理的安全职责.产品驱动安全的内涵.工作内容.工作方法.所需安全资源.以及产品经理的安全工作量进行了分析.希望所有产品经理在没有心理负担的情况下,有目标.有方 ...

  5. NAT回流(Twice NAT)Hairping 参数详解

    内网用户需要通过域名访问内网的服务器,一般商用环境是无法访问的,需要经过以下配置,原理不说了,直接说配置. nat (inside,inside) source dynamic inside-net  ...

  6. python实现十大核心算法(桶排没实例)

    # author:sevenduke # 2019-06-11 # 一.交换排序 # 排序算法的温故:冒泡排序 def dubblesort(arr): for i in range(0, len(a ...

  7. [Python Modules] unittest.mock

    五夜光寒,照来积雪平于栈.西风何限,自起披衣看. 对此茫茫,不觉成长叹.何时旦,晓星欲散,飞起平沙雁. 在某个Python程序中看到这么一行 from unittest import mock 看起来 ...

  8. Java继承之再谈构造器

    目录 Java继承之再谈构造器 初始化基类 默认构造器 带参数的构造器 子类调用父类构造器 Java继承之再谈构造器 初始化基类 前面提到,继承是子类对父类的拓展.<Thinking in Ja ...

  9. 冒泡排序 C&&C++

    冒泡排序(因为过程像冒泡,所以叫做冒泡排序)   流程: (1)对数组中各个数字,一次比较相邻两个 (2)如果前面大于后面,就交换这两个数据 (3)再用同样的方法继续排,直到外层循环排完 或者 (1) ...

  10. 面试题-JS中的作用域相关问题

    对象类型: 原始数据类型存储的是值,而对象类型存储的是地址(指针).下面的这个例子就比较有意思了. 先看题: function test(person) { person.age = 26 perso ...