MongoDB
数据库 -> 集合 -> 文档
database -> collections -> document
mac下安装
- 官网下载mac版本tgz文件
-
将解压后的文件放入 /usr/local ,默认情况下在Finder中是看不到 /usr 这个目录,可以打开Finder后按 shift + command +G 输入 /usr/local后回车便能前往这个目录了
- 配置环境变量,打开终端,输入“open -e .bash_profile”,在打开的文件中加入
export PATH=${PATH}:/usr/local/MongoDB/bin
Command+S保存,关闭上面的.bash_profile编辑窗口,然后在下图中输入"source .bash_profile"使配置生效。输入"mongod -version",回车后如果看到下面的版本号则说明MongoDB已经成功安装到了Mac上
- 在系统根目录下新建 data 文件夹,里面再建一个 db 文件夹,安装MongoDB时并不会自动生成,需要我们手动创建,可以在命令行输入
sudo mkdir -p /data/db
创建,也可以直接在Finder中手动新建
运行
- 终端更改data文件夹权限
MacBook-Pro:~ Yang$ sudo chown -R Yang /data/db
- 终端输入
mongod --dbpath dir
打开或新建一个数据库 -
打开浏览器,输入localhost:27017会出现
- 新建终端窗口,输入
mongo
,可以对数据库进行操作 - 要停止MongoDB的时候一定要正确的退出,不然下次再次连接数据库会出现问题,使用下面的两行代码可以完成这一操作
use admin;
db.shutdownServer();
-
show dbs
查看所有库 -
use dbname
如果无此数据库则新建,如果有则进入 -
show collection
查看当前库所有集合
操作
-
db.collectionName.insert(obj)
在名为collectionName的集合中插入一条文档,如果集合不存在则新建该集合
导入文件
mongoimport --db [dbName] --collection [collectionName] --file [fileDir]
或者简写为
mongoimport -d [dbName] -c [collectionName] [fileDir]
- --db导入到的库
- --collection导入到的集合
- --drop清空原有文档
- --file要导入的文件(json,txt等均可)
注意:运行mongoexport和mongoimport的时候必须退出当前mongo环境,也就是ctrl+c,否则会报错[js] SyntaxError: missing ; before statement @(shell):1:15
查询
-
db.collectionName.find({k:v})
- 查找collectionName集合中k值为v的文档
- 如果find没有参数则查询集合中所有文档
-
db.collectionName.find({k1:v1,k2:v2})
查询k1值为v1<b>==且(&&)==</b>k2值为v2的文档 -
db.collectionName.find({$or:[{k1:v1},{k2:v2}]})
查询k1值为v1<b>==或(||)==</b>k2值为v2的文档 -
db.collectionName.find({k:{$gt:v}})
查询k值大于v的文档 -
db.collectionName.find({k:{$lt:v}})
查询k值小于v的文档
-
db.collectionName.find({k:v}).limit(int1).skip(int2)
查询结果数量为int1,跳过int2条
更新
- 修改文档
db.collectionName.update( {k1:v1}, { $set:{k2:v2}, }, {multi: boolean} //修改所有匹配文档为true,仅修改一次为false )
- 替换文档
将匹配的文档替换为db.collectionName.update( {k1:v1}, { {k2:v2}, ... }, {multi: boolean} )
k2:v2...
删除
- 删除当前所在数据库
db.dropDatabase()
- 删除集合
db.collectionName.drop()
- 删除所有匹配到的文档
db.collectionName.remove({k:v})
- 删除<b>==第一个==</b>匹配到的文档
db.collectionName.remove({k:v},{justOne:true})
- 删除<b>==第一个==</b>匹配到的文档
- 清空集合
db.collectionName.remove({})
排序
db.collectionName.find().sort({k1:1},{k2:-1})
- 按k1来排序,如果k1的值相同,按k2来排序
- 1是升序,-1是降序