MongoDB 是一个基于分布式文件存储的数据库,是一个介于关系数据库和非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的数据类型.Mongo 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引[来自百度百科] .所以这里将对 mongoDB 的一些命令以及使用进行介绍.
首先,是对 mongoDB 的安装,这里使用 max 系统进行演示,打开浏览器, 点击这里 , 来到 homebrew 官方网页,选择简体中文,复制下面的命令到控制台
image.png
安装成功会显示 success 单词,这个时候,进行下面的命令操作
brew install mongodb
当出现一排 #### 时则成功.
下一步,在桌面创建一个文件夹,将文件夹拖入控制台,输入
mongod --dbpath=文件夹路径
这时候不要关闭控制台,因为这是相当于开启服务器,检查活动检测器里面是否有 mongod
image.png
当出现时,commit+n 新建一个控制台,下面是 mongoDB 的操作步骤
进入mongoDB环境:mongo
image.png
查看数据库: show dbs
选择要操作的数据库:use DBNAME(数据库名字)
查看集合:show collections
查看集合里面的内容:db.COLLECTIONNAME(集合名字).find();
查看当前操作的数据库:db 或者 db.getName()
创建数据库:use 要创建的数据名
数据的添加:db.COLLECTIONNAME(集合名字).insert({name:"张三",age:19})
例如:
// 创建一个数据库名为 test, 集合名称是 mytest, 添加数据 {name:" 苹果 ",price:"$5688","type":"36G"{name:" 三星 ",price:"$4688","type":"36G"
步骤:
.创建 use test;
.创建集合: db.mytest.insert({name:"苹果",price:"$5688",type:"32G",{name:"三星",price:"$5688",type:"32G")
.查看集合: db.mytest.find()
image.png
数据操作
增加:db.COLLECTIONNAME.insert({name:"张三",age:19});
sava添加操作
db.COLLECTIONNAME.sava({name:"李四",age:18});
sava更新操作
db.COLLECTIONNAME.save({ "_id" : ObjectId("5a67e9b5abb73ea4bf24d0f0"), "name" : "张三2", "age" : 20 })
删除:remove()
db.COLLECTIONNAME.remove({name:"张三",{配置项(可选)})
注意:updata默认是只会更新符合条件的多条数据中的一条数据,remove默认配置是只会删除符合条件数据的所有数据
数据的查询
db.COLLECTIONNAME.find({条件},{字段});
例如:查询数据库中大于 30 岁的人
db.COLLECTIONNAME.find({age:{$gt:18}})
image.png
例如:大于 30 岁的人 name 字段为 1(只显示名字字段,不显示 id 等等)
db.COLLECTIONNAME.find({age:{$gt:18}},{name:1});
image.png
格式化数据
db.COLLECTIONNAME.find.pretty();
条件查询
条件:大于gt 小于lt 大于等于gte 小于lt
不等于 ne 等于 直接冒号
例如:查询所有以王开头的数据
db.COLLECTIONNAME.find({name:/^王/});
image.png
并且关系,直接用逗号隔开
例如: 查询数据名字是张三,并且年龄为 19
db.COLLECTIONNAME.find({name:"张三",age:19});
或者关系
例如:查询年龄等于 19 或者 18
db.COLLECTIONNAME.find({$or:[{age:19},{age:18}]});
例如:查询张字开头,年龄大于 18
db.COLLECTIONNAME.find({name:/^张/,age:{$gt:18}})
分页相关
查询跳过 2 条开始查,查询两条数据
db.COLLECTIONNAME.find().skip(2).limit(2);
排序查询 sort 查询
1 是正序,-1 是倒序排列
db.COLLECTIONNAME.find().sort({排序名称});
例如:根据年龄从小到大
db.person.find().sort({age:1})
例如:查询所有姓李或者姓王的,按照年龄倒序排列,只查询结果的 2 条数据
db.person(集合名字).find({$or:[{name:/^李/},{name:/^王/}]}).sort({age:-1}).limit(2);
查询数量
db.collectionname.find().count();
最后,exit 退出
来源: http://www.jianshu.com/p/83e892ea242d