1. 什么是MongoDB
-
-
MongoDB是一个基于分布式文件存储的开源数据库系统
-
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
-
2. MongoDB安装
2.1 windows安装
Windows官方安装指南
-
mongodb32位安装版 链接: 百度网盘-链接不存在 密码: chan
-
MongoDB64位绿色版 链接: 百度网盘-链接不存在 密码: w913
-
mongo客户端 链接: 百度网盘-链接不存在 密码: 61qd
2.2 mac安装
Mac官方安装指南
-
先安装homebrewhttp://brew.sh/
-
使用brew安装mongodbbrew install mongodb
-
再安装可视化工具 Robomongo
3. mongodb启动与连接
3.1 windows启动服务器端
-
找到mongodb安装目录,一般是 C:\Program Files\MongoDB 2.6 Standard\bin
-
按下Shift+鼠标右键,选择在此处打开命令窗口
-
在除C盘外的盘符新建一个空目录,如 D:\Mongodb\data
-
在命令行中输入mongod --dbpath=刚创建的空目录,如mongod --dbpath=D:\Mongodb\data
-
再按回车键
-
如果出现waiting for connections on port 27017就表示启动成功,已经在27017端口上监听了客户端的请求
-
注意:--dbpath后的值表示数据库文件的存储路径,而且后面的路径必须事先创建好,必须已经存在,否则服务开启失败
-
注意:这个命令窗体绝对不能关,关闭这个窗口就相当于停止了mongodb服务
4. 添加到window服务
-
以管理员身份运行命令
-
logfile是一个不存在的文件名,而非目录名
mongod.exe --logpath C:\program1\MongoDB\bin\log\logfile --logappend --dbpath C:\program1\MongoDB\bin\data --serviceName MongoDB --install
4. MongoDB基本概念
-
数据库 MongoDB的单个实例可以容纳多个独立的数据库,比如一个学生管理系统就可以对应一个数据库实例
-
集合 数据库是由集合组成的,一个集合用来表示一个实体,如学生集合
-
文档 集合是由文档组成的,一个文档表示一条记录,比如一位同学张三就是一个文档
5. 数据库操作
5.1 使用数据库
语法
use database_name
-
database_name 代表数据库的名字
-
注:如果此数据库存在,则切换到此数据库下,如果此数据库还不存在也可以切过来,但是并不能立刻创建数据库
切换到 school数据库下
use school
5.2 查看所有数据库
语法
show dbs
-
备注: 我们刚创建的数据库school如果不在列表内, 要显示它,我们需要向school数据库插入一些数据
db.students.insert({name:'zfpx',age:1});
5.3 查看当前使用的数据库
语法
db
-
注:db代表的是当前数据库 也就是school这个数据库
5.4 删除数据库
语法
db.dropDatabase()
6. 集合操作
6.1 查看集合帮助
语法
db.students.help();
6.2 查看数据库下的集合
show collections
6.3 创建集合
6.3.1 创建一个空集合
db.createCollection(collection_Name)
-
collection_Name集合的名称
6.3.2 创建集合并插入一个文档
-
collection_Name集合的名称
-
document要插入的文档
db.collection_Name.insert(document)
7. 插入文档
7.1 insert
db.collection_name.insert(document);
`
-
collection_name 集合的名字
-
document 插入的文档
每当插入一条新文档的时候mongodb会自动为此文档生成一个_id属性,id一定是唯一的,用来唯一标识一个文档 _id也可以直接指定,但如果数据库中此集合下已经有此id的话插入会失败
db.students.insert({_id:1,name:'zfpx',age:1});
WriteResult({ "nInserted" : 1 })
db.students.insert({_id:1,name:'zfpx',age:1});
7.2 save
db.collection_name.save(document)
-
collection_name 集合的名字
-
document 插入的文档
注:如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。
> db.students.save({_id:1,name:'zfpx',age:1});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 })
> db.students.save({_id:1,name:'zfpx',age:100});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
8. 更新文档
8.1 语法
db.collection.update(
<query>,
<updateObj>,
{
upsert: <boolean>,
multi: <boolean>
}
)
8.2 参数
-
query 查询条件,指定要更新符合哪些条件的文档
-
update 更新后的对象或指定一些更新的操作符
-
-
$set直接指定更新后的值
-
$inc在原基础上累加
-
-
upsert 可选,这个参数的意思是,如果不存在符合条件的记录时是否插入updateObj. 默认是false,不插入。
-
multi 可选,mongodb 默认只更新找到的第一条记录,如果这个参数为true,就更新所有符合条件的记录。