MongoDB安装及常用命令
2017-12-26 16:10
423 查看
下载地址:https://www.mongodb.com/download-center?jmp=nav#community
Windows下的安装:
下载文件名为:mongodb-win32-x86_64-2008plus-ssl-3.6.0-signed.msi,双击安装,指定安装目录 C:\tools\MongoDB。
C:\tools\MongoDB下创建data文件夹,用于存放数据。
进入C:\tools\MongoDB的bin目录下,执行mongod.exe --dbpath=C:\tools\MongoDB\data启动服务。
注意,如果你的目录中有空格,会报Invalid command 错误,将dbpath 后面的值加上双
引号即可mongod.exe --dbpath=”C:\tools\MongoDB\data”。
如果报 api-ms-win-crt-runtime-l1-1-0.dll丢失 ,下载安装:链接:https://pan.baidu.com/s/1kUWJB2v 密码:szbm。
增加环境变量。
C:\tools\MongoDB\bin下创建mongodb.bat,并增加内容mongod.exe --dbpath=C:\tools\MongoDB\data,用于启动服务。
bin目录下执行mongo.exe进入后台管理。
Linux下的安装
1.下载wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.6.1.tgz
2.tar -zxvf mongodb-linux-x86_64-rhel62-3.6.1.tgz
3.重命名 mv mongodb-linux-x86_64-rhel62-3.6.1.tgz mongodb
4.cd mongodb(假设解压目录为/home/mongodb)
5.mkdir data
6.mkdir logs;logs目录下增加mongo.log
7.增加mongodb.conf
8.mongodb.conf增加如下配置:
dbpath =/home/mongodb/data #数据库路径
logpath = /home/mongodb/logs/mongo.log #日志输出文件路径
logappend=true #错误日志采用追加模式
journal=true #启用日志文件,默认启用
quiet=true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
port=27017 #端口号 默认为27017
fork=true #后台运行
9.启动 ./bin/mongod -f mongodb.conf
10.连接./bin/mongo
常用命令:
1.创建数据库
use test
2.插入数据
db.user.insert({name:"admin",age:18})
3.查询
db.user.find();
db.user.findOne();
4.修改
db.user.update({name:"admin"},{$set:{age:21}});修改不存在的field会自动增加
db.user.update({name:"jerry"},{$set:{age:16}},true);第三个参数,为true时,执行insertOrUpdate,有匹配的update,无匹配的insert
db.user.update({name:"admin"},{$set:{age:18}},false,true);第一个false表示不执行insertOrUpdate,第二个true,表示执行批量更新,false只更新一条
db.user.update({name:"admin"},{$inc:{age:1}},false,false);$inc对数值型进行加减操作
db.user.update({name:"admin"},{$unset:{sex:""}},false,false);$unset删除指定的field
db.user.update({name:"admin"},{$push:{classes:["java","php"]}});$push插入数组
db.user.update({name:"admin"},{$addToSet:{classes:"c++"}});$addToSet指定数组中插入相应的值
db.user.update({name:"admin"},{$pop:{classes:1}});$pop删除指定数组的值,value=1时删除最后一个,value=-1时删除第一个
db.user.update({name:"admin"},{$pull:{classes:"java"}});$pull删除数组中的指定值
db.user.update({name:"admin"},{$pullAll:{classes:["java"]}});$pullAll批量删除指定数组
5.删除
db.user.remove({name:"admin"});
db.user.drop();删除集合;
db.dropDatabase();删除数据库
6.runCommand
user = db.runCommand({
findAndModify:"user",#表名
query:{name:"admin"},#查询器
sort:{},#排序
update:{$set:{age:22}},#修改器
new:true}#是否返回修改后的数据)
runCommand执行特殊函数,findAndModify就是特殊函数之一
7.高级查询
db.user.find({},{_id:0,name:1});第一个{}表示查询所有数据,第二个{}里面value为0不显示,value为1显示,_id默认显示
比较操作符:$lt: <; $lte: <= ;$gt: > ;$gte: >=; $ne: !=
db.user.find({age:{$gte:18,$lte:20}},{name:1,age:1})
包含与不包含:$in 或$nin,仅适用于数组
db.user.find({name:{$in:["admin","tom"]}},{_id:0,name:1,age:1})
$or查询
db.user.find({$or:[{age:{$gt:18}},{name:{$ne:"admin"}}]},{_id:0,name:1,age:1})
正则匹配
db.user.find({name:/ad/i});名字包含ad的区分大小写
db.user.find({name:{$not:/ad/}});$not 和$nin 的区别是$not 可以用在任何地方,$nin 是用到集合上的
$all 与index 的使用
db.user.find({classes:{$all:["c++"]}});
db.user.find({"classes.0":"c++"});集合第一项为c++
db.user.find({"classes.1.0":"java"});多维数组
$size不能与比较符同时使用
db.user.find({classes:{$size:4}})
$slice:[n.m]从n开始取m个
db.user.find({name:"admin"},{_id:0,name:-1,classes:{$slice:[2,1]}})
db.user.find({name:"admin"},{_id:0,name:-1,classes:{$slice:3}});默认从0开始,负数从右开始
分页与排序
db.user.find({},{_id:0,name:1,age:1}).limit(4);查询出前n条数据
db.user.find({},{_id:0,name:1,age:1}).limit(4).skip(1).sort({name:-1});查询第1条数据后的前4条,按name倒序排序。1为正序,先排序后分页。
注意:mongodb 的key 可以存不同类型的数据,排序就也有优先级
最小值->null->数字->字符串->对象/文档->数组->二进制->对象ID->布尔->日期->时间戳->正则->最大值
游标
var user = db.user.find();
while(user.hasNext()){
obj = user.next();
print(obj.name)};
}
游标几个销毁条件
1).客户端发来信息叫他销毁
2).游标迭代完毕
3).默认游标超过10 分钟没用也会被清除
count
db.user.find({name:"admin"}).count();
distinct
db.runCommand({distinct:"user",key:"name"}).values;key表示去重的键
group分组
db.runCommand({ group:{
ns:"集合的名字",
key:"分组键对象",
initial:"初始化累加器",
$reduce:"分解器",
condition:"条件",
finalize:"组完成器"
}})
db.runCommand({group:
{ns:"user",
key:{"name":true},
initial:{age:0},
$reduce:function(doc,prev){if(doc.age>prev.age){prev.name=doc.name;prev.age=doc.age}},
condition:{age:{$gt:10}},
finalize:function(prev){prev.age=prev.name+" de age is "+prev.age}}});
8.查看版本
db.runCommand({buildInfo:1})
9.查询执行集合的详细信息,大小,空间,索引等
db.runCommand({collStats:"user"})
Windows下的安装:
下载文件名为:mongodb-win32-x86_64-2008plus-ssl-3.6.0-signed.msi,双击安装,指定安装目录 C:\tools\MongoDB。
C:\tools\MongoDB下创建data文件夹,用于存放数据。
进入C:\tools\MongoDB的bin目录下,执行mongod.exe --dbpath=C:\tools\MongoDB\data启动服务。
注意,如果你的目录中有空格,会报Invalid command 错误,将dbpath 后面的值加上双
引号即可mongod.exe --dbpath=”C:\tools\MongoDB\data”。
如果报 api-ms-win-crt-runtime-l1-1-0.dll丢失 ,下载安装:链接:https://pan.baidu.com/s/1kUWJB2v 密码:szbm。
增加环境变量。
C:\tools\MongoDB\bin下创建mongodb.bat,并增加内容mongod.exe --dbpath=C:\tools\MongoDB\data,用于启动服务。
bin目录下执行mongo.exe进入后台管理。
Linux下的安装
1.下载wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.6.1.tgz
2.tar -zxvf mongodb-linux-x86_64-rhel62-3.6.1.tgz
3.重命名 mv mongodb-linux-x86_64-rhel62-3.6.1.tgz mongodb
4.cd mongodb(假设解压目录为/home/mongodb)
5.mkdir data
6.mkdir logs;logs目录下增加mongo.log
7.增加mongodb.conf
8.mongodb.conf增加如下配置:
dbpath =/home/mongodb/data #数据库路径
logpath = /home/mongodb/logs/mongo.log #日志输出文件路径
logappend=true #错误日志采用追加模式
journal=true #启用日志文件,默认启用
quiet=true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
port=27017 #端口号 默认为27017
fork=true #后台运行
9.启动 ./bin/mongod -f mongodb.conf
10.连接./bin/mongo
常用命令:
1.创建数据库
use test
2.插入数据
db.user.insert({name:"admin",age:18})
3.查询
db.user.find();
db.user.findOne();
4.修改
db.user.update({name:"admin"},{$set:{age:21}});修改不存在的field会自动增加
db.user.update({name:"jerry"},{$set:{age:16}},true);第三个参数,为true时,执行insertOrUpdate,有匹配的update,无匹配的insert
db.user.update({name:"admin"},{$set:{age:18}},false,true);第一个false表示不执行insertOrUpdate,第二个true,表示执行批量更新,false只更新一条
db.user.update({name:"admin"},{$inc:{age:1}},false,false);$inc对数值型进行加减操作
db.user.update({name:"admin"},{$unset:{sex:""}},false,false);$unset删除指定的field
db.user.update({name:"admin"},{$push:{classes:["java","php"]}});$push插入数组
db.user.update({name:"admin"},{$addToSet:{classes:"c++"}});$addToSet指定数组中插入相应的值
db.user.update({name:"admin"},{$pop:{classes:1}});$pop删除指定数组的值,value=1时删除最后一个,value=-1时删除第一个
db.user.update({name:"admin"},{$pull:{classes:"java"}});$pull删除数组中的指定值
db.user.update({name:"admin"},{$pullAll:{classes:["java"]}});$pullAll批量删除指定数组
5.删除
db.user.remove({name:"admin"});
db.user.drop();删除集合;
db.dropDatabase();删除数据库
6.runCommand
user = db.runCommand({
findAndModify:"user",#表名
query:{name:"admin"},#查询器
sort:{},#排序
update:{$set:{age:22}},#修改器
new:true}#是否返回修改后的数据)
runCommand执行特殊函数,findAndModify就是特殊函数之一
7.高级查询
db.user.find({},{_id:0,name:1});第一个{}表示查询所有数据,第二个{}里面value为0不显示,value为1显示,_id默认显示
比较操作符:$lt: <; $lte: <= ;$gt: > ;$gte: >=; $ne: !=
db.user.find({age:{$gte:18,$lte:20}},{name:1,age:1})
包含与不包含:$in 或$nin,仅适用于数组
db.user.find({name:{$in:["admin","tom"]}},{_id:0,name:1,age:1})
$or查询
db.user.find({$or:[{age:{$gt:18}},{name:{$ne:"admin"}}]},{_id:0,name:1,age:1})
正则匹配
db.user.find({name:/ad/i});名字包含ad的区分大小写
db.user.find({name:{$not:/ad/}});$not 和$nin 的区别是$not 可以用在任何地方,$nin 是用到集合上的
$all 与index 的使用
db.user.find({classes:{$all:["c++"]}});
db.user.find({"classes.0":"c++"});集合第一项为c++
db.user.find({"classes.1.0":"java"});多维数组
$size不能与比较符同时使用
db.user.find({classes:{$size:4}})
$slice:[n.m]从n开始取m个
db.user.find({name:"admin"},{_id:0,name:-1,classes:{$slice:[2,1]}})
db.user.find({name:"admin"},{_id:0,name:-1,classes:{$slice:3}});默认从0开始,负数从右开始
分页与排序
db.user.find({},{_id:0,name:1,age:1}).limit(4);查询出前n条数据
db.user.find({},{_id:0,name:1,age:1}).limit(4).skip(1).sort({name:-1});查询第1条数据后的前4条,按name倒序排序。1为正序,先排序后分页。
注意:mongodb 的key 可以存不同类型的数据,排序就也有优先级
最小值->null->数字->字符串->对象/文档->数组->二进制->对象ID->布尔->日期->时间戳->正则->最大值
游标
var user = db.user.find();
while(user.hasNext()){
obj = user.next();
print(obj.name)};
}
游标几个销毁条件
1).客户端发来信息叫他销毁
2).游标迭代完毕
3).默认游标超过10 分钟没用也会被清除
count
db.user.find({name:"admin"}).count();
distinct
db.runCommand({distinct:"user",key:"name"}).values;key表示去重的键
group分组
db.runCommand({ group:{
ns:"集合的名字",
key:"分组键对象",
initial:"初始化累加器",
$reduce:"分解器",
condition:"条件",
finalize:"组完成器"
}})
db.runCommand({group:
{ns:"user",
key:{"name":true},
initial:{age:0},
$reduce:function(doc,prev){if(doc.age>prev.age){prev.name=doc.name;prev.age=doc.age}},
condition:{age:{$gt:10}},
finalize:function(prev){prev.age=prev.name+" de age is "+prev.age}}});
8.查看版本
db.runCommand({buildInfo:1})
9.查询执行集合的详细信息,大小,空间,索引等
db.runCommand({collStats:"user"})
相关文章推荐
- MongoDB入门教程(包含安装、常用命令、相关概念、使用技巧、常见操作等)
- mongodb安装过程与常用命令
- 【mongodb】安装及常用命令
- mongodb安装及常用命令
- Windows Mongodb 安装记录+ 常用命令
- mongodb 安装常用命令 集群架构 调整,增加延迟备份节点服务器,删除仲裁节点
- MongoDB实战全攻略(含安装常用命令备份恢复及主从(含副本集合)部署)
- MongoDB入门教程(包含安装、常用命令、相关概念、使用技巧、常见操作等)
- docker安装lnmp具体实例以及常用的docker命令
- mac 苹果 安装git 及git常用命令示例
- mongodb常用命令
- fedora17中subversion的安装及常用命令
- docker 安装部署及常用命令
- MongoDB常用的操作命令 不指定
- MongoDB常用操作命令大全
- Ionic3学习笔记(一)安装、项目结构与常用命令
- MongoDB常用命令
- Ubuntu 安装显卡常用命令
- mongodb常用命令3
- centos利用yum安装卸载软件常用命令