mongodb安装使用

官网下载页面需翻墙加载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() # 查看所有支持的命令
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值