2020-08-13

https://www.cnblogs.com/daizhengyang/p/13384169.html

https://blog.csdn.net/qq_27289001/article/details/77150598

https://www.cnblogs.com/wujuntian/p/6821442.html

 

 

 

 

查看帮忙命令

hlep  --server级别   db.help()  --db级别   db. collectionname.help()   --集合级别

 

查看所有数据库

show dbs   --新建的数据库并不在数据库的列集合中,要显示它,我们需要向新建的数据库创建集合。

 

查看当前数据库

db

 

创建数据库

use DATABASE_NAME

 

切换到某个数据

use DATABASE_NAME

 

删除当前数据库,会把磁盘上的数据库文件一并删除

db.dropDatabase()

 

修复数据库

db.repairDatabase()

 

拷贝数据库testtest999

 db.copyDatabase(

'test',

'test999')

 

查看所有集合(关系型数据库叫表)

show collections   

show tables

 

查看各集合的状态

db.printCollectionStats()

 

新建集合

Use 数据库

db.createCollection(

"集合名", {集合的大小属性:大小值,集合的增长属性:增长值,集合的最大容量属性:最大容量值,,,等等})

db.createCollection(

"table1")

 

删除集合table1

db.table1.drop()

 

重命名集合table1table101

db.table1.renameCollection("table101")

 

查看集合table1的所在的数据库名称

db.table1.getDB()

 

查看集合table1的状态

db.table1.stats()

 

查询集合的所有数据

db.table1.find()         

 

查询集合

 

 

查询集合的第一条数据

db.table1.findOne()    

 

总行数

db.table1.count()      

 

集合的总大小

db.table1.totalSize()   

 

集合的储存空间大小

db.table1.storageSize() 

 

只查询列hid,并列出该列的不重复的值

db.table1.distinct("hid") 

 

select* from table1 where hid=2

db.table1.find({"hid":2})        

 

where hid=2 and hid2=3

db.table1.find({"hid":2,"hid2":3})  

 

where hid=2 or hid2=3

db.table1.find({$or:[{"hid":2},{"hid2":3}]}) 

 

Where hid>1

db.table1.find({"hid":{$gt:1}})

 

Where hid in(100,10)

db.table1.find({hid:{$in:[10,100]}})  -- $nin= not in   $all

 

Where hid>=1

db.table1.find({"hid":{$gte:1}})   --$lt(<)$lte(<=)$gt(>)$gte(>=)$ne(<>)

 

Where hid<2

db.table1.find({"hid":{$lt:2}}) 

 

Where hid<=2

db.table1.find({"hid":{$lte:2}})

 

Where  4<hid<6

db.table1.find({"price":{$lt:6,$gt:4}});

 

Where hid like '%2%'

db.table1.find({"hid":/2/}) 

 

 

 

 

Where like is not null

db.table1.find({like:{$nin:[null]}})

 

Where hid like '2%'

db.table1.find({"hid":/^2/}) 

 

查询指定的两列hidgo2

db.table1.find({},{"hid":1,"go2":1})  –1:只查询那个字段. 0:不查询该字段但是不能一个是1一个是0

db.table1.find({},{"url":1,'_id':0})   -- '_id':0是可以的。因为_id是一个特殊字段

 

查询存在like字段的数据

db.table1.find({like:{$exists:1}})  --1存在  0不存在

 

Hid字段不存在或者为空

db.table1.find({hid:null})

 

Hid存在且为空

db.table1.find({hid:{$in:[null],$exists:true}})

db.table1.find({hid:{$in:[null],$exists:true}})

 

Hid存在且不为空

db.table1.find({hid:{$ne:null})

 

select hid,go2 from table1 where hid=23

db.table1.find({"hid":23},{"hid":1,"go2":1}) 

 

 

 

 

查询指定的两列hidgo2

db.table1.find({},{"hid":true,"go2":true})

 

select hid,go2 from table1 where hid=23

db.table1.find({"hid":23},{"hid":true,"go2":true})

 

查询结果按hid字段顺序排序

db.table1.find().sort({"hid":1})

 

查询结果按hid字段降序排序

db.table1.find().sort({"hid":-1}) 

 

查询前两条数据

db.table1.find().limit(2) 

 

查询第2条以后的所有数据

db.table1.find().skip(2) 

 

查询第2条以后的后面3条数据

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

 

查询hid=2的总行数

db.table1.find({"hid":2}).count()                 --加上count():总行数

 

 

 

 

 

 

 

order by like desc limit 2

db.table1.find().sort({like:-1}).limit(2)  --倒叙

--正序的时候会把空和不存在该字段的放到上面

 

 

 

Where like is not null order by like limit 2

db.table1.find({like:{$ne:null,$exists:true}}).sort({like:1}).limit(2)

 

 

 

 

 

 

 

类型操作符$type

 

 

返回By的类型为数字型的

db.table1.find({by:{$type:"double"}})   --“string”  字符型

 

 

 

 

 

 

 

正则表达式 查询title包含_new

db.table1.find({title:/_new/})

 

 

db.table1.find({'title':{'$regex':'[\w]+'}})

 

 

 

 

 

 

 

数组元素查询

例如url:"http://www.runob.com",

tags:[1,2,3],   tags就是一个集合元素

 

数组tags中包含1

db.table1.find({tags:1})

 

数组tags同时包含1,2

db.table1.find({tags:{$all:[2,3]}})

 

数组tags的第一个元素=1

db.table1.find({"tags.0":1})

 

数组tags的元素个数=3

db.table1.find({tags:{$size:3}})

 

数组tags的前两个元素

db.table1.find({like:10},{tags:{$slice:2}})

 --正数是前面多少条,负数是尾部多少条,注意前面要有限制条件

 

数组tags偏移两位从第三位开始取一位

db.table1.find({like:10},{tags:{$slice:[2,1]}})

 

$来指定符合条件的任意一个数组元素

db.table1.find({tags:{$all:[1,3,2]}},{"tags.$":1})

 

数组tags只要存在大于1或者小于3的元素,就返回整个数组

db.table1.find({tags:{$gt:1,$lt:3}})

 

数组tags只要存在大于1且小于3的元素,就返回整个数组

db.table1.find({tags:{$elemMatch:{$gt:1,$lt:3}}})

 

精准匹配,顺序也要一致

db.table1.find({tags:[1,2,3]})

 

 

 

 

 

 

 

聚合aggregate()

Distinct

 

use runood;

db.createCollection("tab1")

db.tab1.remove({})

db.tab1.insert({name:"",type:"语文",score:50})

db.tab1.insert({name:"",type:"语文",score:100})

db.tab1.insert({name:"",type:"数学",score:90})

db.tab1.insert({name:"",type:"语文",score:50})

db.tab1.insert({name:"",type:"语文",score:20})

db.tab1.find()

 

 

 

Select name,count(*) from tab1 group by name

db.tab1.aggregate([{$group:{_id:"name",num_tutorial:{$sum:1}}}])

 

 

Select distinct name from tab1

db.tab1.distinct("name")

 

Select distinct name from tab1 where score>50

db.tab1.distinct("name",{score:{$gt:50}})

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

删除集合( 关系型数据库叫行,mongodb叫文档 )

 

 

删除hid25的行

db.table1.remove({'hid2':5}) – 不加,{multi:true}也会删除所有的数据

 

删除所有行

db.table1.remove({}) 

 

删除某个键(删除like=10 by)

db.table1.update({like:10},{$unset:{"by":1}} ,{multi:true})) –-注意加上multi。否则就只删除满足条件的第一条

 

删除所有的by

db.table1.update({},{$unset:{"by":1}},{multi:true})

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

创建索引创建索引后,数据库目录下会多出一个index-开头的文件

db.table1.ensureIndex({"hid":1})

 

1表示升级排序,-

1表示降序排序,

"hid":1,"hid2":-1表示组合索引,

unique:true表示唯一性索引

 

db.table1.ensureIndex({"hid":1,"hid2":-1},{unique:true});

 

查看集合table1的索引信息

db.table1.getIndexes()

 

删除集合table1的索引

db.table1.dropIndexes()

 

创建用户

db.createUser({

user:"admin",

pwd:"admin",

roles:[{role:"userAdminAnyDatabase",

db:"admin"}]});

 

创建用户

db.createUser({

user:"admin1",pwd:

"admin1",roles:[{role:"root",

db:"admin"}]});

 

查询用户的三种方法

use  admin 

show users 

db.system.users.find()

db.system.users.find().pretty()

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

举例

db.inventory.find( { $or: [ { status: "A" }, { qty: { $lt: 30 } } ] } )

SELECT * FROM inventory WHERE status = "A" OR qty < 30

 

 

db.inventory.find({status: "A",$or: [{qty: {$lt: 30 } }, { item: /^p/ }]})

SELECT * FROM inventory WHERE status = "A" AND ( qty < 30 OR item LIKE "p%")

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值