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() |
| |
拷贝数据库test为test999 | db.copyDatabase( 'test', 'test999') |
| |
查看所有集合(关系型数据库叫表) | show collections show tables |
| |
查看各集合的状态 | db.printCollectionStats() |
| |
新建集合 | Use 数据库 db.createCollection( "集合名", {集合的大小属性:大小值,集合的增长属性:增长值,集合的最大容量属性:最大容量值,,,等等}) db.createCollection( "table1") |
| |
删除集合table1 | db.table1.drop() |
| |
重命名集合table1为table101 | 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/}) |
| |
查询指定的两列hid和go2 | 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}) |
| |
|
|
| |
查询指定的两列hid和go2 | 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叫文档 ) |
|
| |
删除hid2为5的行 | 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%") |
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |