官网下载页面需翻墙加载googlejs才能看到链接
https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.4.tgz
tar zxf mongodb-linux-x86_64-rhel62-3.2.4.tgz
mv mongodb-linux-x86_64-rhel62-3.2.4 /usr/local/mongodb
查看帮助:
/usr/local/mongodb/bin/mongod -h
缺少openssl:
./mongod: /usr/lib64/libcrypto.so.10: no version information available (required by ./mongod)
安装:yum install openssl
启动服务
--fork以创建子进程的方式后台运行 -dbpath数据路径 --logpath日志路径 --port端口 --httpinterface启用http访问接口 auth安全模式(true时http部分链接受限)
/usr/local/mongodb/bin/mongod --fork --port=27017 --dbpath=/data/db --logpath=/usr/local/mongodb/stdout.log --httpinterface
将启动信息写入文件,以文件配置启动/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf
touch mongodb.conf
vi mongodb.conf
fork = true
port = 27017
quiet = true
dbpath = /data/db
logpath = /usr/local/mongodb/logs/stdout.log
logappend = true
httpinterface = true
auth = false
rest = true
运行情况(查看mongodb监听端口)
netstat -tlnup|grep mongod
浏览器打开:http://ip:28017
关闭服务
/usr/local/mongodb/bin/mongod --shutdown
快速启动命令
vi ~/.bashrc
alias mongodbstart="/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf"
alias mongodbstop="/usr/local/mongodb/bin/mongod --shutdown"
保存
source ~/.bashrc
增加用户操作bin
cd /usr/bin/
ln -s -f /usr/local/mongodb/bin/mongo
在用户bin目录下创建了mongo链接
连接mongodb数据库
输入mongo直接进入mongo shell模式
shell:常用命令
db # 当前数据库
show dbs # 所有数据库
use mydb # 不存在则创建数据库,否则切换到数据库(无操作离开后数据删除)
db.getCollectionInfos() # 所有表信息 getCollectionInfoNames
db.createCollection('mydb') # 创建集合
db.createCollection("logdb",{capped:true,size:100*1024*1024}) #固定集合 capped=true,是否为固定集合,size磁盘尺寸maxBytes,max限制文档行数(size必须指定,max是基于size的附加参数) ,转换已有集合db.runCommand({"convertToCapped":"list_name",size:10000})
db.data.renameCollection("test_data") # 修改集合名称
db.dropDatabase() # 删除当前数据库
db.help() # 查看帮助
db.test_data.insert({id:1,title:'标题'}) # 向当前db的test_data表(集合)写入json格式数据,如果该集合不存在,自动创建。
db.test_data.update({id:1},{$set:{id:null}}) # 更新语句,$set更新指定字段,没有$set则完全替换文档
db.test_data.update(
<query>, # 查询条件,类似sql update查询内where后面的
<update>, # 更新内容
{
upsert: <boolean>, # 可选, 不存在是否插入,true为插入,默认不插入
multi: <boolean> # 可选,为true时匹配多条,默认只更新匹配的第一条
}
)
db.test_data.update({}, {$rename : {"dsc" : "desc"}}, false, true) # 修改列名
db.test_data.update({}, {$unset : {"dsc" : ""}}, false, true) # 删除列
db.test_data.save({ "_id" : ObjectId("56e273b75b3a637ea04412ac"),"title" : "标题"}) # 传入主键则替换已有数据(相当于删除再写入非合并数据),无_id则插入
db.test_data.remove({"title" : "标题"}); # 删除符合条件的数据,删除全部.remove({}),只删一个.remove({},1); 非0删一条,0或无参全删
db.test_data.find() # 查询表数据 db.test_data.find().pretty() 优化输出格式
db.test_data.count() # 查询数据条数db.test_data.find().count()
db.test_data.find().limit(NUMBER).skip(NUMBER) # limit显示行数 skip跳过行数
db.test_data.find().sort({title:-1}); # 排序,-1降序 1升序 默认升序
db.test_data.find().sort({$natural:1}) # 原始存储顺序 -1降序 1升序,不加sort默认与$natural:1一致
db.test_data.find({id:1},{content:0}).limit(3).pretty() # 查询id=1的,不显示content内容,显示3行数据,打印结果优化
db.test_data.count({createDate:{$gt:new Date("2016/03/17 19:50:00"),$lt:new Date("2016/03/17 20:00:00")}}); # 时间区间查询
db.test_data.findOne() # 只返回一个文档
比较操作
等于 {<key>:<value>} 不等于 {<key>:{$ne:<value>}}
小于 {<key>:{$lt:<value>}} 小于或等于 {<key>:{$lte:<value>}}
大于 {<key>:{$gt:<value>}} 大于或等于 {<key>:{$gte:<value>}}
and {<key>:<value>,<key>:<value>}
or {$or:[{<key>:<value>},{<key>:<value>}]}
in {<key>:{$in:[<value>,<value>]}}
db.test_data.createIndex({title:1}) # 创建索引 -1降序 1升序
db.test_data.createIndex({ createDate: 1 }, { expireAfterSeconds: 120*24*60*60 } ) # 设置过期时间索引 用createDate控制过期时间
db.fsyncLock() # 阻塞写入操作,并将脏数据刷新到磁盘上,确保数据一致。
db.fsyncUnlock() # 解锁
db.test_data.stats(); # 集合状态(总数、磁盘、索引情况等)
db.listCommands() # 查看所有支持的命令
https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.4.tgz
tar zxf mongodb-linux-x86_64-rhel62-3.2.4.tgz
mv mongodb-linux-x86_64-rhel62-3.2.4 /usr/local/mongodb
查看帮助:
/usr/local/mongodb/bin/mongod -h
缺少openssl:
./mongod: /usr/lib64/libcrypto.so.10: no version information available (required by ./mongod)
安装:yum install openssl
启动服务
--fork以创建子进程的方式后台运行 -dbpath数据路径 --logpath日志路径 --port端口 --httpinterface启用http访问接口 auth安全模式(true时http部分链接受限)
/usr/local/mongodb/bin/mongod --fork --port=27017 --dbpath=/data/db --logpath=/usr/local/mongodb/stdout.log --httpinterface
将启动信息写入文件,以文件配置启动/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf
touch mongodb.conf
vi mongodb.conf
fork = true
port = 27017
quiet = true
dbpath = /data/db
logpath = /usr/local/mongodb/logs/stdout.log
logappend = true
httpinterface = true
auth = false
rest = true
运行情况(查看mongodb监听端口)
netstat -tlnup|grep mongod
浏览器打开:http://ip:28017
关闭服务
/usr/local/mongodb/bin/mongod --shutdown
快速启动命令
vi ~/.bashrc
alias mongodbstart="/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf"
alias mongodbstop="/usr/local/mongodb/bin/mongod --shutdown"
保存
source ~/.bashrc
增加用户操作bin
cd /usr/bin/
ln -s -f /usr/local/mongodb/bin/mongo
在用户bin目录下创建了mongo链接
连接mongodb数据库
输入mongo直接进入mongo shell模式
shell:常用命令
db # 当前数据库
show dbs # 所有数据库
use mydb # 不存在则创建数据库,否则切换到数据库(无操作离开后数据删除)
db.getCollectionInfos() # 所有表信息 getCollectionInfoNames
db.createCollection('mydb') # 创建集合
db.createCollection("logdb",{capped:true,size:100*1024*1024}) #固定集合 capped=true,是否为固定集合,size磁盘尺寸maxBytes,max限制文档行数(size必须指定,max是基于size的附加参数) ,转换已有集合db.runCommand({"convertToCapped":"list_name",size:10000})
db.data.renameCollection("test_data") # 修改集合名称
db.dropDatabase() # 删除当前数据库
db.help() # 查看帮助
db.test_data.insert({id:1,title:'标题'}) # 向当前db的test_data表(集合)写入json格式数据,如果该集合不存在,自动创建。
db.test_data.update({id:1},{$set:{id:null}}) # 更新语句,$set更新指定字段,没有$set则完全替换文档
db.test_data.update(
<query>, # 查询条件,类似sql update查询内where后面的
<update>, # 更新内容
{
upsert: <boolean>, # 可选, 不存在是否插入,true为插入,默认不插入
multi: <boolean> # 可选,为true时匹配多条,默认只更新匹配的第一条
}
)
db.test_data.update({}, {$rename : {"dsc" : "desc"}}, false, true) # 修改列名
db.test_data.update({}, {$unset : {"dsc" : ""}}, false, true) # 删除列
db.test_data.save({ "_id" : ObjectId("56e273b75b3a637ea04412ac"),"title" : "标题"}) # 传入主键则替换已有数据(相当于删除再写入非合并数据),无_id则插入
db.test_data.remove({"title" : "标题"}); # 删除符合条件的数据,删除全部.remove({}),只删一个.remove({},1); 非0删一条,0或无参全删
db.test_data.find() # 查询表数据 db.test_data.find().pretty() 优化输出格式
db.test_data.count() # 查询数据条数db.test_data.find().count()
db.test_data.find().limit(NUMBER).skip(NUMBER) # limit显示行数 skip跳过行数
db.test_data.find().sort({title:-1}); # 排序,-1降序 1升序 默认升序
db.test_data.find().sort({$natural:1}) # 原始存储顺序 -1降序 1升序,不加sort默认与$natural:1一致
db.test_data.find({id:1},{content:0}).limit(3).pretty() # 查询id=1的,不显示content内容,显示3行数据,打印结果优化
db.test_data.count({createDate:{$gt:new Date("2016/03/17 19:50:00"),$lt:new Date("2016/03/17 20:00:00")}}); # 时间区间查询
db.test_data.findOne() # 只返回一个文档
比较操作
等于 {<key>:<value>} 不等于 {<key>:{$ne:<value>}}
小于 {<key>:{$lt:<value>}} 小于或等于 {<key>:{$lte:<value>}}
大于 {<key>:{$gt:<value>}} 大于或等于 {<key>:{$gte:<value>}}
and {<key>:<value>,<key>:<value>}
or {$or:[{<key>:<value>},{<key>:<value>}]}
in {<key>:{$in:[<value>,<value>]}}
db.test_data.createIndex({title:1}) # 创建索引 -1降序 1升序
db.test_data.createIndex({ createDate: 1 }, { expireAfterSeconds: 120*24*60*60 } ) # 设置过期时间索引 用createDate控制过期时间
db.fsyncLock() # 阻塞写入操作,并将脏数据刷新到磁盘上,确保数据一致。
db.fsyncUnlock() # 解锁
db.test_data.stats(); # 集合状态(总数、磁盘、索引情况等)
db.listCommands() # 查看所有支持的命令