MongoDB常用命令
来源:互联网 发布:彩神软件靠谱吗 编辑:程序博客网 时间:2024/06/14 19:15
前言
mongoDB 最近开始做一些简单的数据查询计算功能,但是因为mongodb用的比较少,对很多的查询方法都不熟悉,因此整理了一些常用的命令,平时工作有需要时候方便查询,当然遇到一些新的也可以进行更新。
管理mongodb
创建管理员
db.createUser(
{
user: “myUserAdmin”,
pwd: “abc123”,
roles: [ { role: “userAdminAnyDatabase”, db: “admin” } ]
}
)
管理员登录
mongo –port 27017 -u “myUserAdmin” -p “abc123” –authenticationDatabase “admin”
其他用户登录
mongo –port 27017 -u “myTester” -p “xyz123” –authenticationDatabase “test”
登入数据库
use nieweb
删除用户
db.dropUser(“dev”)
true
创建用户角色
db.createUser({“user”:”dev”,pwd:”dev123”,roles:[“readWrite”]})
Successfully added user: { “user” : “dev”, “roles” : [ “readWrite” ] }
show users
{
“_id” : “nieweb.dev”,
“user” : “dev”,
“db” : “nieweb”,
“roles” : [
{
“role” : “readWrite”,
“db” : “nieweb”
}
]
}
配置mongodb
修改mongodb 外部访问的IP权限
/etc/mongod.conf
修改/etc/mongod.conf
bingip改为0.0.0.0 或者外网IP
一般查询
查询
MySQL:
SELECT * FROM user
Mongo:
db.user.find()
MySQL:
SELECT * FROM user WHERE name = ‘foobar’
Mongo:
db.user.find({‘name’ : ‘foobar’})
插入
MySQL:
INSERT INTO user (
name
,age
) values (‘foobar’,25)
Mongo:
db.user.insert({‘name’ : ‘foobar’, ‘age’ : 25})
修改集合字段
if you want add a column email
on MySQL,you must :
ALTER TABLE user add
But in Mongo,you can just:
db.user.insert({‘name’ : ‘foobar’, ‘age’ : 25, ‘email’ : ‘foo@bar.com’})
删除表内容
MySQL:
DELETE * FROM user
Mongo:
db.user.remove({})
根据条件删除
MySQL:
DELETE FROM user WHERE age < 30
Mongo:
db.user.remove({‘age’ : {$lt : 30}})
其他比较符号
gt:>; gte : >= ;lt:<; lte : <= ; $ne : !=
更新
MySQL:
UPDATE user SET
age
= 36 WHEREname
= ‘foobar’
Mongo:
db.user.update({‘name’ : ‘foobar’}, {$set : {‘age’ : 36}})
根据条件更新
MySQL:
UPDATE user SET
age
=age
+ 3 WHEREname
= ‘foobar’
Mongo:
db.user.update({‘name’ : ‘foobar’}, {$inc : {‘age’ : 3}})
聚合计算
aggregate
aggregete实例
查询满足下面集合中满足 gzh 与 channelId条件并对userNum求和。
{_id:"1",gzh:"abc",channelId:"1","date":"2017-8-01","userNum":1232}{_id:"1",gzh:"abc",channelId:"2","date":"2017-8-02","userNum":1232}{_id:"1",gzh:"abc",channelId:"3","date":"2017-8-03","userNum":1632}{_id:"1",gzh:"abc",channelId:"4","date":"2017-8-04","userNum":132}{_id:"1",gzh:"abc",channelId:"5","date":"2017-8-05","userNum":232}{_id:"1",gzh:"abc",channelId:"6","date":"2017-8-06","userNum":123}{_id:"1",gzh:"abc",channelId:"1","date":"2017-7-01","userNum":132}{_id:"1",gzh:"abc",channelId:"2","date":"2017-7-02","userNum":162}{_id:"1",gzh:"abc",channelId:"3","date":"2017-7-03","userNum":232}{_id:"1",gzh:"abc",channelId:"4","date":"2017-7-04","userNum":432}{_id:"1",gzh:"abc",channelId:"5","date":"2017-7-05","userNum":232}{_id:"1",gzh:"abc",channelId:"6","date":"2017-7-06","userNum":12}
db.cllection.aggregate([ { $match : { gzh:"abc",channelId:"123"} }, { $group : { _id:"channelId", userSum:{$sum:'$userNum'} } } ]);
MapReduce
mapReduce实例
根据gzh与channeId 添加下userNum的和。 其中channelId 可以是给定的任意多个。给出的collection的item如下:
{_id:"1",gzh:"abc",channelId:"1","date":"2017-8-01","userNum":1232}{_id:"1",gzh:"abc",channelId:"2","date":"2017-8-02","userNum":1232}{_id:"1",gzh:"abc",channelId:"3","date":"2017-8-03","userNum":1632}{_id:"1",gzh:"abc",channelId:"4","date":"2017-8-04","userNum":132}{_id:"1",gzh:"abc",channelId:"5","date":"2017-8-05","userNum":232}{_id:"1",gzh:"abc",channelId:"6","date":"2017-8-06","userNum":123}{_id:"1",gzh:"abc",channelId:"1","date":"2017-7-01","userNum":132}{_id:"1",gzh:"abc",channelId:"2","date":"2017-7-02","userNum":162}{_id:"1",gzh:"abc",channelId:"3","date":"2017-7-03","userNum":232}{_id:"1",gzh:"abc",channelId:"4","date":"2017-7-04","userNum":432}{_id:"1",gzh:"abc",channelId:"5","date":"2017-7-05","userNum":232}{_id:"1",gzh:"abc",channelId:"6","date":"2017-7-06","userNum":12}
根据上面给出的集合,我们可以下如下的mapreduce来进行计算。
db.collection.mapReduce( function() { var channelIds = ["1", "2", "3", ]; if(channelIds.indexOf(this.channelId) >= 0) { emit( this.gzh,this.userNum); } }, function(key, values) { var sum = 0; for(var i = 0; i < values.length; i++) { sum = sum + values[i]; } return sum; }, { query:{gzh:"abc"}, out:"order_totals", finalize:function(key, reducedVal) { print(reducedVal) return reducedVal; } }).find();
最后运行输入:
{ “_id” : “abc”, “value” : xxxx }
详情请参考官网文档
mongodb指导手册
- mongodb常用命令
- mongodb常用命令
- MongoDB常用命令
- MongoDB常用命令
- MongoDB常用命令
- Mongodb常用命令
- mongodb常用命令
- mongodb常用命令
- mongodb常用命令
- mongodb常用命令
- mongodb 常用命令
- mongodb常用命令
- MongoDB 常用命令
- MongoDB 常用命令
- mongodb 常用命令
- mongodb常用命令
- mongodb常用命令
- MongoDB 常用命令
- HTML5 canvas 画布
- WebStorm 如何设置工具字体大小
- 提高 Java 中锁的性能的技巧
- Qt5在打包发布时遇到的一些问题
- 行为研究:用户行为背后的意义和4点价值
- MongoDB常用命令
- HTML-CSS-JS编码规范
- HTML5 SVG
- Unity AssetBundle 设置名称优化
- 太原中软卓越-关于JAVA的十个谎言
- Linux虚拟机中安装source insight
- jQuery的下载和使用
- Android 获取路径目录方法
- 工具:搭建个人博客教程