MongoDB 快速入门

前言

最近咱们项目引入MongoDB,做为头像审核存储处理,毕业快两年,第一次使用MongoDB,所以作一下MongoDB入门笔记。html

MongoDB

最近看到咱们项目有用到MongoDB 是一个基于分布式文件存储的数据库。由 C++语言编写,它是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。java

MongoDB 概念解析

SQL术语/概念 MongoDB术语/概念 解释/说明
database database 数据库
table collection 数据库表/集合
row document 数据记录行/文档
column field 数据字段/域
index index 索引
table joins 表链接,MongoDB不支持
primary key primary key 主键,MongoDb自动将_id字段设置为主键

安装MongoDB

MongoDB 提供了 linux 各发行版本 64 位的安装包,你能够在官网下载安装包。 下载地址:www.mongodb.com/download-ce…linux

下载完安装包,并解压 tgzsql

curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz    # 下载
tar -zxvf mongodb-linux-x86_64-3.0.6.tgz                                   # 解压
mv  mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb                         # 将解压包拷贝到指定目录
export PATH=<mongodb-install-directory>/bin:$PATH #MongoDB 的可执行文件位于 bin 目录下,因此能够将其添加到 PATH 路径中:
复制代码

建立数据库目录mongodb

MongoDB的数据存储在data目录的db目录下,可是这个目录在安装过程不会自动建立,因此你须要手动建立data目录,并在data目录中建立db目录。。 注意:/data/db 是 MongoDB 默认的启动的数据库路径(--dbpath)shell

mkdir -p /data/db
复制代码

启动MongoDb服务器数据库

输入命令,回车服务器

cd /usr/local/mongodb/bin/
mongod --dbpath /data/db
复制代码

MongoDb服务启动成功,如图 curl

启动MongoDb服务器后,咱们启动一个终端链接到 MongoDb 服务器。(xshell从新打开一个窗口) 链接MongoDb服务器命令的语法以下分布式

mongo server_ip:port/dbname -u user -p password
复制代码

由于这里我链接的是本地服务器,直接输入mongo,便可进行shell后台,可进行数据库的CURD操做。

MongoDb的crud

1.MongoDb建立数据库

MongoDB 建立数据库的语法格式以下:

use database_name
复制代码

若是数据库不存在,则建立数据库,不然切换到指定数据库。

如图建立了huaxiao的数据库,可是在使用show dbs命令时,并无看到数据库存在,这是由于该数据库中尚未数据。要显示它,咱们须要向数据库插入一些数据。

2.删除数据库

MongoDB 删除数据库的语法格式以下:

db.dropDatabase()
复制代码

接下来咱们切换到数据库 huaxiao,执行删除操做:

> use huaxiao
switched to db huaxiao
> show dbs
huaxiao  0.078GB
local    0.078GB
> db.dropDatabase()
{ "dropped" : "huaxiao", "ok" : 1 }
> show dbs
local  0.078GB
> 
复制代码

3.MongoDb建立表(集合)

MongoDB 中使用 createCollection() 方法来建立集合。

db.createCollection(name, options)
复制代码

参数说明:

  • name: 要建立的集合名称
  • options: 可选参数, 指定有关内存大小及索引的选项

下图建立了一个数据库huaxiao,建立了礼物集合gift

4.删除表(集合)

集合删除语法格式以下:

db.collection.drop()
复制代码

如下实例删除了集合 gift:

> show tables;
gift
system.indexes
> db.gift.drop()
true
> show tables;
system.indexes
> 
复制代码

5.MongoDB 插入文档

MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法以下:

db.collection.insert(document)
复制代码

如下文档能够存储在 MongoDB 数据库 的 gift 集合中:

6.MongoDB 查询文档

MongoDB 查询数据的语法格式以下:

db.collection.find(query, projection)
复制代码

参数说明:

  • query :可选,使用查询操做符指定查询条件
  • projection :可选,使用投影操做符指定返回的键。查询时返回文档中全部键值, 只需省略该参数便可(默认省略)。

若是你须要以易读的方式来读取数据,可使用 pretty() 方法,语法格式以下:

db.collection.find(query, projection).pretty()
复制代码

如下实例咱们查询了集合 col 中的数据:

db.gift.find().pretty();
{
	"_id" : ObjectId("5d1951a6659f4eaa30bac84f"),
	"id" : "1",
	"name" : "守护之心",
	"price" : "10"
}
复制代码

7.MongoDB 删除文档

remove() 方法的基本语法格式以下所示:

db.collection.remove(
   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)
复制代码

参数说明:

  • query :(可选)删除的文档的条件。
  • justOne : (可选)若是设为 true 或 1,则只删除一个文档,若是不设置该参数,或使用默认值 false,则删除全部匹配条件的文档。
  • writeConcern :(可选)抛出异常的级别。

咱们移除 name 为 '守护之心' 的文档:

> db.gift.remove({'name':'守护之心'})
WriteResult({ "nRemoved" : 1 })
复制代码

若是你只想删除第一条找到的记录能够设置 justOne 为 1,以下所示:

db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)
复制代码

8.MongoDB 更新文档

update() 方法用于更新已存在的文档。语法格式以下:

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)
复制代码

参数说明:

  • query : update的查询条件,相似sql update查询内where后面的。
  • update : update的对象和一些更新的操做符(如,inc...)等,也能够理解为sql update查询内set后面的
  • upsert : 可选,这个参数的意思是,若是不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
  • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,若是这个参数为true,就把按条件查出来多条记录所有更新。 writeConcern :可选,抛出异常的级别。

咱们在集合 gift 中插入以下数据:

>db.gift.insert({
	"id" : "1",
	"name" : "守护之心",
	"price" : "10"
})
复制代码

接着咱们经过 update() 方法来更新礼物价格(price),并查看,更新成功:

> db.gift.update({'id':'1'},{$set:{'price':'888'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.gift.find().pretty()
{
	"_id" : ObjectId("5d1a9e46b35668bf92c989e3"),
	"id" : "1",
	"name" : "守护之心",
	"price" : "888"
}
> 
复制代码

参考资料

相关文章
相关标签/搜索