mongodb
一.安装,配置
1.下载,并解压
可视化工具下载:https://robomongo.org/download
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.4.5.tgz
2.创建db和logs两个文件夹
3.创建配置文件mongodb.conf
dbpath=/opt/modules/mongodb3.4.5/db
logpath=/opt/modules/mongodb3.4.5/logs/mongodb.log
port=27017
fork=true
nohttpinterface=true
4.启动
bin/mongod -f mongodb.conf
5.进入mongodb客户端创建超级用户
bin/mongo
>use admin
>db.createUser({user:"root",pwd:"123456",roles:["root"]}) //添加管理员
6.在mongodb.conf里添加安全验证
auth=true
7.关闭Mongodb
pkill mongod 或进入mongo shell :运行 db.shuidownServer()
8.启动Mongodb
bin/mongo admin -u root -p root
9.普通用户的创建

db.createUser( { user: "test", pwd: "test",
customData: { employeeId: 12345 },
roles: [ "readWrite"] },
{ w: "majority" , wtimeout: 5000 } )
每个用户可以有多个角色

二.基本命令
show dbs查看所有的数据库
show tables查看所有的集合
db显示当前的数据库
use+name切换到指定的数据库,如果不存在则创建新的
文档是一组键值(key-value)对(即BSON)。MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型
{"name": 2, "age": 169}
{"name": "Óin", "age": 167}
{"bianhao": 33, "age": 82}
创建固定大小的集合db.createCollection("mycoll", {capped:true, size:100000})
db.runoob.insert({"name":"菜鸟教程"})向数据库中插入数据
db.dropDatabase()删除当前数据库
db.collectionname.drop()删除集合
MongoDB查询某天的数据
db.CollectionAAA.find({ "CreateTime" : { "$gte" : ISODate("2017-04-20T00:00:00Z")
, "$lt" : ISODate("2017-04-21T00:00:00Z") } }).count()
spark操作MongoDB遇到的问题
*Error: Attempt to use a decimal BSON type when experimental decimal server support is not currently enabled.
解决方案:对decimal类型的数据进行了转换
索引
1、给表字段添加索引(1升序,-1降序)
db.table.ensureIndex({nFlag:1})
db.user.ensureIndex({"Id":1,"name":-1})
2、查找表的索引
db.system.indexes.find()
3、删除索引
db.mycoll.dropIndex(name)
4、数据去重
db.user.distinct('name')
mongoDB字段的改变
1 、添加一个字段. table 代表表名 , 添加字段 content,字符串类型。如果是0则默认为double类型
db.table.update({}, {$set: {content:""}}, {multi: true})
2、删除一个字段
db.table.update({},{$unset:{content:""}},false, true)
3、批量更新state(double)的数据类型为Int32
type:1表示 double 类型 ,new NumberInt(x.state)表示修改state为int32位
db.jd.find({"state":{$type:1}}).forEach(
function(x){
x.state=new NumberInt(x.state);
db.jd_goods_code.save(x);
}
)
具体的数据类型对应:
类型 数字 备注
Double 1 双精度浮点数 - 此类型用于存储浮点值
String 2 字符串 - 这是用于存储数据的最常用的数据类型。MongoDB中的字符串必须为UTF-8
Object 3 对象 - 此数据类型用于嵌入式文档
Array 4 数组 - 此类型用于将数组或列表或多个值存储到一个键中
Binary data 5 二进制数据 - 此数据类型用于存储二进制数据
Object id 7 对象ID - 此数据类型用于存储文档的ID
Boolean 8 布尔类型 - 此类型用于存储布尔值(true / false)值
Date 9 日期 - 此数据类型用于以UNIX时间格式存储当前日期或时间。
Null 10 Null - 此类型用于存储Null值
Regular 11 正则表达式 - 此数据类型用于存储正则表达式
32-bitinteger 16 32位整型 - 此类型用于存储数值
Timestamp 17 时间戳 - 当文档被修改或添加时,可以方便地进行录制
64-bit integer 18 64位整型 - 此类型用于存储数值
mongodb数据按时间段导出:
bin/mongoexport -d log -c WebLogger_58cm.com -u gyz -p gyz -o gyzdata/da.json -q '{"StartTime":{"$gt":ISODate("2018-08-16T16:00:00Z"),"$lt":ISODate("2018-08-17T16:00:00Z")}}'
mongo与sql语句的对比
![]()


浙公网安备 33010602011771号