mongodb常用命令


启动mongodb:./bin/mongod -f conf/mongod.cof
Mongodb mongod.db 配置:

port = 12345
dbpath = data
logpath = log/mongod.log
fork = true

常用命令

./mongo 127.0.0.1:12345/test
show dbs
show collection
use admin
db.zrk_collection.insert({x:1})
for(i=3;i<100;i++) db.zrk_collection.insert({x:i})
db.zrk_collection.find()
db.zrk_collection.findOne({x:1})
db.zrk_collection.find().count()
db.zrk_collection.find().skip(3).limit(2).sort({x:1})
db.zrk.find({m:{$exists:true}}) 只查询有m字段的
db.zrk_collection.insert({x:1})
db.zrk_collection.update({x:3},{x:999})   只会修改一条
db.zrk_collection.insert({x:100,y:100,z:100})
db.zrk_collection.update({z:100},{$set:{y:99}})  $set为部分更新符 
db.zrk_collection.update({y:100},{y:99},true) 不存在的数据直接插入
db.zrk_collection.update({z:100},{$set:{y:99}},false,true)  会修改多条 
db.zrk_collection.remove({x:999})  不同update 可删除多条
db.zrk_collection.drop()
db.zrk_collection.getIndexes() 
db.zrk_collection.ensureIndex({x:1})  添加{x:1}的索引 还可以是-1代表排序方向

常见索引

索引笔记
_id索引默认创建
单键索引最普通的索引,在{x:1,y:2,z:3}中创建x:1的索引,需自己创建
多键索引创建同单建索引。db.zrk_collection.insert({x:[1,2,3,4,5]}) 就会创建多键索引
复合索引查询条件不止一个时需要建立复合索引 ,db.zrk_collection.ensureIndex({x:1,y:2})
过期索引1、在一段时间后就过期的索引
2、索引过期后相应数据就会被删除
适合登陆信息 日志信息存储 ,
db.collection.ensureIndex({time:1},{expireAfterSeconds:10})
3、存储过期缩影字段的值必须是指定的时间类型的值或数组,
不能是时间戳类型,否则不能自动删除
4、如果指定了ISODate数组,则按最小时间进行删除
db.zrk_collection.insert({time:new Date()}) 这样的数据或被删除
db.zrk_collection.insert({time:1}) 这样的数据不会被删除
5、过期索引不能是复合索引
6、删除时间不精确(60s运行一次的删除进程进行删除)“`
全文索引db.集合.ensureIndex({key:"text"}) key是字段
db.集合.ensureIndex({key:"text",key2:"test"})
db.集合.ensureIndex({"$**":"text"}) 对多有字段创建索引
查询:db.集合.find({$text:{$search:"aa"}})
db.集合.find({$text:{$search:"aa bb"}}) 或关系
db.集合.find({$text:{$search:"aa bb -cc"}}) 不包含cc
db.集合.find({$text:{$search:"\"aa\" \"bb\" "}}) 与关系
全文索引相似度
$meta操作符:{score:{$meta:"testScore"}}
写在查询条件后面可以返回返回结果的相似度
与sort一起使用,可以达到很好的效果
db.zrk.find({$text:{$search:"aa bb"}},{score:{$meta:"textScore"}}).sort({score:{$meta:"textScore"}})
返回
{ "_id" : ObjectId("55a10179309ede361eea8b61"), "article" : "aa bb cc", "score" : 1.3333333333333333 }
{ "_id" : ObjectId("55a10181309ede361eea8b62"), "article" : "bb cc dd", "score" : 0.6666666666666666 }
全文索引限制
每次查询只能指定一个$text查询
$text查询不能出现$nor查询中
查询中如果包含了$text,hint不在起作用
全文索引还不支持中文
地理位置索引将一些点的位置存储,创建索引可以按照位置来查找其他点
子分类:
2d索引:用于存储和查找平面上的点。
2dsphere索引:用于存储和查找球面上的点。
查找方式:
查找距离某一点一定距离的点。
查找包含在某区域内的点。
创建方式:
2d:db.collection.ensureIndex({key:"2d"})
位置表示方式:经纬度[经度,纬度]
取值范围:经度[-180,180] 纬度[-90,90]
查询方式:
1.$near:查询距离某点最近的点
db.zrk2.find({w:{$near:[1,1]}}) 获取附件的点 默认查100个
db.zrk2.find({w:{$near:[1,1],$maxDistance:10}}) 限定查10个,不支持minDistance
2.geoWithin:查询某个形状的点
形状的表示:
2.1. $box 矩形:{$box:{[<x1>,<y1>],[<x2>,<y2>]}}
2.2 $center 圆形:{$center:[[<x1>,<y1>,r]]}
2.3 $polygon多边形{$polygon:[[<x1>,<y1>],[<x2>,<y2>],[<x3>,<y3>]]}
例子
db.zrk2.find({w:{$geoWithin:{$box:[[0,0],[3,3]]}}})

索引属性
db.collection.ensureIndex({param},{param})
第二个参数便是索引的属性|

常用4个:

索引笔记
名字Name指定
db.collection.ensureIndex({},{name,""})例子:
db.zrk_collection.ensureIndex({x:1},{name:"normal_index1"})
唯一性Unique指定
db.collection.ensureIndex({},{unique:true/false})
稀疏性Sparse指定
db.collection.ensureIndex({},{sparse:true/false})
不必为不存在字段创建索引
db.zrk.find({m:{$exists:true}}).hint("index_name")强制使用索引是否定时删除

查看db中文件 db.fs.files.find()
创建备份 ./mongorestore -d imgs /data/mongdb_bak/imgs/
导入备份 ./mongorestore -d imgs /data/mongdb_bak/imgs/

本文链接:http://blog.csdn.net/zrk1000/article/details/51612263

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值