Mongo索引与查询具体操作demo

  • Post author:
  • Post category:其他





索引


  • 查看索引
db.stu.getIndexes()   

  • 创建索引
db.stu.createIndex({'rank':-1})  

  • 删除索引
db.stu.dropIndex({'rank':-1}) 

  • 创建唯一索引 title里的数据不重复
db.stu.createIndex({'title':1},{unique:true})  

  • 打印出执行状态 里面有时间
db.stu.find({name:'test10000'}).explain('executionStats')  



插入多条数据:

db.stu.insertMany([{},{},{}]) 



查询stu集合里的所有文档

db.stu.find() 



查询stu集合里title为1的文档

db.stu.find({'title':'1'})  



查询stu集合里title里含有u的文档

db.stu.find({'title':/u/})  



查询stu集合里title开头为u,并且rank为3的文档

db.stu.find({'title':/^u/,'rank':3})  

$gte
** 大于等于**

$gt

大于

$lte
** 小于等于**

$lt
** 小于**

$eq
**等于 **

$ne
** 不等于**



查询stu集合里title 大于4 的文档

db.stu.find({'title':{$gt:4}})  



查询stu集合里title 大于4并且小于等于6的文档

db.stu.find({'title':{$gt:4,$lte:6}})  



查询stu集合里title 大于5或者小于3的文档

db.stu.find({'title':{$or:[{$gt:5,$lt:3}}]}) 



去重查询posts集合里tag字段名

db.posts.distinct('tag')   



查询posts集合里rank大于等于3的文档

db.posts.find({'rank':{$gte:3}})   




rank等于4的文档

db.posts.find({'rank':{$eq:4}})     


** rank不等于4的文档**
db.posts.find({'rank':{$ne:4}})    



title含有之而且rank为3

db.posts.find({'title':/之/,'rank':3})   



title含有之或者rank为3

db.posts.find({$or:[{'title':/之/},{'rank':3}]})   




rank含有3或者4

db.posts.find({'rank':{$in:[3,4]}})     



查询文档里字段含有istop的文档

 db.posts.find({'istop':{$exists:true}})   



查询文档里字段不含有istop的文档

db.posts.find({'istop':{$exists:false}})   


** 按照rank进行升序排序 1为升序-1为降序 **


id:0为不显示该字段 1显示 也可以用true和false表示


db.posts.find({},{'_id':0}).sort({'rank':1})   



先按照rank升序排序如果ran’k相等再按照title降序排序

db.posts.find({},{'_id':0}).sort({'rank':1},{'title':-1})  




找前三条 只有一个参数_

db.posts.find().limit(3)    


** rank大于3且小于5的文档**
db.posts.find({'rank':{$gt:3,$lt:5}},{'_id':0})  



跳过前两条后取前三条记录

db.stu.find().skip(2).limit(3)   



查询rank大于5或者小于3的文档

db.posts.find({$or:[{'rank':{$gt:5}},{'rank':{$lt:3}}]},{'_id':0})



版权声明:本文为s_frozen原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。