MongoDB 查询索引

10 篇文章 0 订阅

查询索引

db.domainevents.getIndexes()

创建索引

db.集合名称.createIndex( { 字段名1-正序: 1, 字段名2-倒序: -1},{ name: “索引名称” }, {background: true} );

background 后台运行不增加锁

db.domainevents.createIndex( { aggregateIdentifier: 1, timeStamp: 1, sequenceNumber: 1},{ name: "orderedEventStreamIndex" }, {background: true} );


/* sagacollection创建索引 */



db.sagacollection.createIndex( { "sagaIdentifier" : 1},{ name: "sagaIdentifierIndex" }, {background: true} );
db.sagacollection.createIndex( { "associations" : 1},{ name: "sagaAssociationsIndex" }, {background: true} );
db.sagacollection.createIndex( { "sagaType" : 1},{ name: "sagaTypeIndex" }, {background: true} );


db.snapshotevents.createIndex( { aggregateIdentifier: 1, type: 1, sequenceNumber: 1}, { name: "uniqueAggregateIndex" },{unique: true}, {background: true} );



查询

db.domainevents.find({ “字段名称” : “值”}).pretty()

db.domainevents.find({ "aggregateIdentifier" : "300109"}).pretty()

查询正在执行

db.currentOp()

currentOp的输出结果里,每个请求包含一个opid字段,有了opid,就可以发送killOp来干掉对应的请求。

db.killOp()
db.killOp(opid)

为了验证我们使用使用了索引,可以使用 explain 命令:

db.user.find({tags:"music"}).explain();







stage的类型的意义
mongodb的文档中列出了前4种类型,还有一些没有列出来,但是会比较常见,这里一并解释一下。
COLLSCAN :全表扫描
IXSCAN:索引扫描
FETCH::根据索引去检索指定document
SHARD_MERGE:各个分片返回数据进行merge
SORT:表明在内存中进行了排序(与前期版本的scanAndOrder:true一致)
SORT_MERGE:表明在内存中进行了排序后再合并
LIMIT:使用limit限制返回数
SKIP:使用skip进行跳过
IDHACK:针对_id进行查询
SHARDING_FILTER:通过mongos对分片数据进行查询
COUNT:利用db.coll.count()之类进行count运算
COUNTSCAN:count不使用用Index进行count时的stage返回
COUNT_SCAN:count使用了Index进行count时的stage返回
SUBPLA:未使用到索引的$or查询的stage返回
TEXT:使用全文索引进行查询时候的stage返回
附:explain查询结果解析官方文档:
https://docs.mongodb.org/v3.0/reference/explain-results/
————————————————
版权声明:本文为CSDN博主「琦彦」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fly910905/article/details/78336961

设置慢查询时间,查询慢查询日志

慢查询时间500 毫秒
db.setProfilingLevel(1,500); 

查询日志limit10
db.system.profile.find().sort({$natural:-1}).limit(1)

聚合查询

$group分组查询 条数大于1的数据_Id

db.snapshotevents.aggregate([{$group : {_id : {aggregateIdentifier : "$aggregateIdentifier", type : "$type",  sequenceNumber : "$sequenceNumber"},
																				'count':{'$sum':NumberInt(1)}, 
																				last1 : {$last : "$_id"}}},
																				{'$match':{'count':{$gt:1} }}
																				
																				])

https://www.runoob.com/mongodb/mongodb-query.html

https://blog.csdn.net/wll_1017/article/details/78029273

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值