mongodb常用命令

来源:互联网 发布:零售药店收银软件 编辑:程序博客网 时间:2024/05/01 09:28

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

port = 12345dbpath = datalogpath = log/mongod.logfork = true

常用命令

./mongo 127.0.0.1:12345/testshow dbsshow collectionuse 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