展示操作
mongod --dbpath $path
开启数据库,--dbpath就是选择数据库文档所在的文件夹,也就是mongdb数据库是有真实存在的文件
mongo
开启数据库后,另开cmd,输入mongo操作数据库
db
查看当前所在数据库
show dbs
列出所有数据库
show collections
列出当前数据库的所有集合
使用操作
use ${数据库名字}
使用某个数据库(如果不存在则创建某个数据库)(要实际操作数据库之后数据库才能真正被创建 )
db.student.insert({...})
没有创建集合的概念,只要往集合中insert一条数据,集合就会被创建
示例中,student就是一个集合,集合中存储着多个文档
修改操作
db.foo.update({'name':'小明'},{$set:{'age':32}})
将name为小明的数据的age字段改为32(默认只能更改一条)
db.foo.update({'name':'小明'},{$set:{'age':32},{multi:true}})
将所有name为小明的数据的age字段改为32(所有匹配均修改)
db.foo.update({'name':'小明'},{'name':'小白'})
完全替换文档
删除操作
db.dropDatabase()
删除当前数据库
db.foo.drop()
删除集合foo
删除所有a字段为1的文档(默认删除所有匹配项)
db.foo.remove({})
删除所有文档
导入操作
mongoimport --db test --collection restaurant --drop --file primer-dataset.json
--db test --collection restaurant //选择导入数据库为test,集合为restaurant
--drop //把集合清空
--file primer-dataset.json //导入数据为primer-dataset
一般在外部写好数据,再在外部导入文件json中,最外部每一个{}都会被当做一个文档
查询操作
db.student.find()
查看该集合的所有文档
精确匹配
db.foo.find({'score.math':884})
查找foo集合中score对象中math为884的文档(复合对象的情况)
db.foo.find({'score.math':{$gt:884}})
查询foo集合中score.math'属性大于884的所有文档
(小于为$lt)
逻辑匹配
db.foo.find({'score.math':884,'age':13})
多重条件查询(与)
db.foo.find({$or:[{'age':12},{'age':14}]})
多重条件查询(或)
数据排序
db.foo.find().sort({'score.math':1})
1为升序,-1为降序
db.foo.find().sort({'score.math':1,'score.chinese':-1})
同上,但当math相同时,chinese按降序排