快捷搜索:  汽车  科技

mongodb基本常用命令(简单介绍及应用看这里)

mongodb基本常用命令(简单介绍及应用看这里)数据被分组存储在数据集中, 被称为一个集合(Collenction)。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库(RDBMS)里的表(table),不同的是它不需要定义任何模式(schema)。1.面向集合(Collenction-Orented)MongoDB 最大的特点是他支持的查询语言非常强大,其语法类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引,包含 JSON 文档模型、动态的数据模式、二级索引、动态查询、全文搜索 、聚合框架、MapReduce、GridFS、地理位置索引、内存引擎 、地理分布等一系列的强大功能。当然其缺点是不支持事物操作,对于多表的联合查询也仅仅支持Left outer Join。但依旧无法阻挡MongoDB成为当前非常热门的NoSQL数据库产品。二、Mon

近几年随着大数据的兴起,非关系性数据库(NoSQL)越来越成为数据库解决方案的主流,mongodb便是当前最热门的NoSQL 数据库产品之一。MongoDB是一个高性能、开源、无模式的文档型数据库,它由 C 语言编写,支持C 、Java、PHP、Python、Ruby、C#等多种编程语言。

本期安仔课堂,ISEC实验室的王老师为大家进行MongoDB的简单介绍及应用,带你快速入门!

mongodb基本常用命令(简单介绍及应用看这里)(1)

一、关于MongoDB

MongoDB 采用的是NoSQL的设计方式,是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富、最像关系数据库的。它是一个面向集合的、模式自由的文档型数据库。

MongoDB 最大的特点是他支持的查询语言非常强大,其语法类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引,包含 JSON 文档模型、动态的数据模式、二级索引、动态查询、全文搜索 、聚合框架、MapReduce、GridFS、地理位置索引、内存引擎 、地理分布等一系列的强大功能。

当然其缺点是不支持事物操作,对于多表的联合查询也仅仅支持Left outer Join。但依旧无法阻挡MongoDB成为当前非常热门的NoSQL数据库产品。

二、MongoDB使用原理

1.面向集合(Collenction-Orented)

数据被分组存储在数据集中, 被称为一个集合(Collenction)。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库(RDBMS)里的表(table),不同的是它不需要定义任何模式(schema)。

2.模式自由(Schema-free)

对于存储在 MongoDB 数据库中的文件,我们不需要知道它的任何结构定义。

那么“无模式”或“模式自由”是什么概念呢?例如,下面两个记录可以存在于同一个集合里:

{'name' :'wangkaka'}

{'age' :'30' }

3.文档型

存储的数据是键(key)/值(value)对的集合 键是字符串 值是数据类型集合里的任意类型 包括数组和文档。

三、MongDB的下载安装、应用

以Linux环境下为例

按本地服务器的配置下载对应版本。

mongodb基本常用命令(简单介绍及应用看这里)(2)

图1

下载完安装包,并解压 tgz。

下载完并解压:tar –zxvf mongodb-linux-x86.tgz

mv mongo-linux-x86 /usr/local/mongodb

(拷贝到你本地指定目录下)

MongoDB 的可执行文件位于 bin 目录下,所以可将其添加到 PATH 路径中:

export PATH=/usr/local/mongodb/bin:$PATH

创建数据库目录

MongoDB的数据存储在data目录的db目录下,但是这个目录在安装过程不会自动创建,需要手动创建data目录,并在data目录中创建db目录。

以下实例中我们将data目录创建于根目录下(/)。

注意:/data/db 是 MongoDB 默认启动的数据库路径(--dbpath)。

命令行中运行 MongoDB 服务

你可以在命令行中执行mongo安装目录中的bin目录执行mongod命令来启动mongdb服务

./mongod:

以上安装成功启动服务之后,即可正式开始使用MongoDB了。

一般可以在linux下,直接输入:mongo localhost:mongodb端口号,回车后,会显示当前MongoDB的版本等信息。

mongodb基本常用命令(简单介绍及应用看这里)(3)

图2

MongoDB 的一些简单命令:

user test; (默认使用本地test库)

show dbs; (显示所有库)

db.createCollection('user'); (创建集合user)

mongodb基本常用命令(简单介绍及应用看这里)(4)

图3

use user;(当前自创建的名为user的集合)

db.user.insert({'id':'1' 'name':'wangkaka' 'age':'30' 'sex':'1'});

mongodb基本常用命令(简单介绍及应用看这里)(5)

图4

db.user.find();(查询当前自创建的名为user的集合的全部内容 '_id'为mongo自动生成的 一个包含了时间的唯一标识字段)

mongodb基本常用命令(简单介绍及应用看这里)(6)

图5

db.user.drop();(会删除集合 如果成功删除选定集合,返回 true,否则返回 false)

mongodb基本常用命令(简单介绍及应用看这里)(7)

图6

db.user.remove({'id':'3'});(删除集合中id为3的数据,不带参数会删除集合中所有的数据)

mongodb基本常用命令(简单介绍及应用看这里)(8)

图7

MongoDB 使用 update() 和 save() 方法来更新集合中的文档。

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

db.collection.update(<query> <update> {upsert:<boolean> multi:<boolean> writeConcern:<document>})。

参数说明:

query : update的查询条件,类似sql update查询内where后面的。

update : update的对象和一些更新的操作符(如$ne $gt...)等,也可以理解为sql update查询内set后面的。

upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew true为插入,默认是false,不插入。

multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

writeConcern :可选,抛出异常的级别。

例如:将id为1的此记录中age字段的值更改为29。

db.user.update({'id':'1'} {$set:{'age':'29'}});

mongodb基本常用命令(简单介绍及应用看这里)(9)

图8

如果需要修改多条,除了设置multi参数外,也可以使用updateMany()方法 updateMany()方法在linux命令下可能识别不了,但用MongoDB的一些可视化工具是可以的。

实例:db.user.update({'sex':'1'} {$set:{'age':'30'}} {multi:true});

mongodb基本常用命令(简单介绍及应用看这里)(10)

图9

save() 方法通过传入的文档来替换已有文档。语法格式如下:

db.collection.save(<document> {writeConcern:<document>});

实例:

db.user.save({'id':'2' 'name':'lili' 'age':'24' 'sex':'0'});

mongodb基本常用命令(简单介绍及应用看这里)(11)

图10

MongoDB中删除集合中的记录除了上面提到的remove()方法外,也可以使用delete() 多条用deleteMany(),格式相同。

MongoDB sort() 方法:

在 MongoDB 中使用 sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。

sort()方法基本语法如下所示:

db.collection.find().sort({key:1})。

例如:将user集合按id 的升序排列

db.user.find().sort({'id':1})

mongodb基本常用命令(简单介绍及应用看这里)(12)

图11

如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数。例: db.user.find().limit(2)。

mongodb基本常用命令(简单介绍及应用看这里)(13)

图12

skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。

db.user.find().limit(1).skip(1);(只会显示第二条文档数据)

mongodb基本常用命令(简单介绍及应用看这里)(14)

图13

skip()、limilt()、sort()三个放在一起执行的时候,执行的顺序是先 sort() 然后是 skip(),最后是limit()。

MongoDB的条件操作符用于比较两个表达式并从mongoDB集合中获取数据。常用的操作符有:

$gt 大于 $gte 大于等于

$lt 小于 $lte 小于等于

$ne 不等于 $eq 等于

以上为MongoDB的简单使用和介绍,更多使用操作请参考MongoDB官方文档。目前也有很多MongoDB的可视化操作工具(例如:NoSQLBooster fro MongoDB),可以更好更简便的来使用MongoDB!

猜您喜欢: