MongoDB是著名的非关系型数据库,由于其存取十分灵活,在一些web应用上得到了比关系型数据库更广泛的运用
一、MongoDB安装
安装mongoDB
1
sudo apt-get install mongodb
查看版本
1
mongo -version
启动和关闭mongoDB服务
1
2service mongodb start
service mongodb stop查看是否在运行
1
pgrep mongo -l
卸载mongoDB
1
sudo apt-get --purge remove mongodb mongodb-clients mongodb-server
二、MongoDB基本操作
启动MongoDB命令行工具
1
mongo
1
2
3
4
5
6
7show dbs #显示所有数据库
show collections #显示当前数据库中的集合(collection类似mysql等关系数据库中的table)
show users #显示所有用户
use DBname #切换当前数据库至DBname
db.help() #显示数据库操作命令
db.yourCollection.help() #显示集合操作命令,yourCollection是集合名
exit #退出命令行工具创建数据库
1
use DBname #不需要事先定义,现用现创建
创建Collection
1
db.createCollection('newCollection')
或直接向Collection中插入数据
插入数据
1
2
3db.collentionName.insert({_id:1, name: 'Ph0en1x', age: 20})
# or
db.collectionName.save({_id:1, name: 'Ph0en1x', age: 22})_id
不写会自动生成,当_id
重复时,insert
不会插入新的记录,而save
会进行更新
查找数据
1
db.youCollection.find(criteria, filterDisplay)
criteria
:查询条件,可选filterDisplay
:筛选显示部分数据,如显示指定列数据,可选(当选择时,第一个参数不可省略,若查询条件为空,可用{}做占位符,如下例第三句)例如
1
2
3
4
5db.collectionName.find() #查询所有记录
db.collectionName.find({name: 'Ph0en1x'}) #查询name='Ph0en1x'的记录
db.collectionName.find({},{name:1, sge:1}) #筛选出指定列name、age数据
db.collectionName.find({name: 'Ph0en1x', age: 22}) #and 与条件查询
db.student.find({$or: [{age: 22}, {age: 25}]}) #or 条件查询
修改数据
1
db.youCollection.update(criteria, objNew, upsert, multi )
criteria
: update的查询条件objNew
:update的对象和一些更新的操作符upsert
:如果不存在update的记录,是否插入objNew,true
orfalse
multi
:false
默认,只更新查询到的第一条,true
更新全部其中
criteria
和objNew
是必选参数,upsert
和multi
可选参数例如
1
db.collectionName.update({name: 'Ph0en1x'}, {$set: {sage: 13}}, false, true)
删除数据
1
db.collectionName.remove({name: 'Ph0en1x'})