一、MongoDB简介
MongoDB是由C++编写的是一个基于分布式文件存储的开源数据库
MongoDB将数据存储为Bson文档(JSON的二进制化文档).
特点:内部执行引擎为JS解释器, 把文档存储成bson结构,在查询时,转换为JS对象,并可以通过熟悉的js语法来操作.
二、MongoDB安装
1、下载MongoDB
2、解压文件
3、将文件移动到/usr/local/mongdb目录下
wget 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 #将解压文件移动到指定目录
MongoDB安装不用编译,本身就是编译后的二进制可执行文件
启动mongod服务
./bin/mongod --dbpath /path/to/database --logpath /path/to/log --fork --port 27017
参数解释:
- dbpath 数据存储目录
- logpath 日志存储目录
- port 运行端口(默认27017)
- fork 后台进程运行
如果启动不成功直接
进入到mongodb/bin目录下启动服务
cd /usr/local/mongodb/bin
./mongod
启动mongo客户端
./mongo
简单尝试
查看数据库
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
进入数据库
use test
MongoDB的库是隐式创建,你可以use 一个不存在的库
创建表
创建一个user表,和库一样表也可以隐式创建的
db.createCollection('user')
查看user表
show tables
或
show collections
show collections 是官方推荐查表方式
在user表中插入数据
db.user.insert({name:zhangsan,age:22});
2018-03-09T02:46:40.930-0500 E QUERY [js] ReferenceError: zhangsan is not defined :@(shell):1:17
由于zhangsan没有加引号,系统报错,从新输入
db.user.insert({name:'zhangsan',age:22});
WriteResult({ "nInserted" : 1 })
出现WriteResult({ "nInserted" : 1 })表示数据插入成功.
查看数据
db.user.find()
{ "_id" : ObjectId("5aa23beeb802ced6f4faf2f1"), "name" : "zhangsan", "age" : 22 }
系统自动给数据添加_id,当然你也可以给数据指定id
db.user.insert({_id:3,name:'wangwu',age:22,sex:'male',course:['语文','数学','英语','化学']});
WriteResult({ "nInserted" : 1 })
> db.user.find()
{ "_id" : ObjectId("5aa23beeb802ced6f4faf2f1"), "name" : "zhangsan", "age" : 22 }
{ "_id" : 3, "name" : "wangwu", "age" : 22, "sex" : "male", "course" : [ "语文", "数学", "英语", "化学" ] }
删除表
db.collectionName.drop() ,
实例:
> db.test.insert({name:'zhangyue'}) # 隐式创建test表,并将name:'zhangyue'插入表中
WriteResult({ "nInserted" : 1 })
> show tables
test
user
> db.test.drop() # 删除test表
true # 返回结果true,表示删除成功
> show collections
user
删除库
db.dropDatabase();
db.dropDatabase();
{ "dropped" : "test", "ok" : 1 }
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB