Mongo-db数据库语句

2 篇文章 0 订阅
1 篇文章 0 订阅

图解Collection 文档 DB KEY VALUE:
请添加图片描述

官网有供测试的shell,可以用来练习
<传送门>

>//查看所有数据库(二选一)
>show dbs
>show databases
//查看当前数据库
>db
>
>//使用一个数据库,若没有会自动创建
>use mydb1
>
>use mydb2
>
>//删除当前所在数据库
>db.dropDatabase()
>
>//在mydb2下创建一个集合(类似于表)
>db.createCollection('table1_of_db2')
>
>//在mydb2下查看集合
>show collections
>
>//回到mydb1,查看集合,没有
>use mydb1
>
>show collections
>
>////在mydb1下创建一个集合(类似于表)
>db.createCollection('table1_of_db1')
>
>//查看当前数据库
>db
>
>//查看集合
>show collections
>

当前状况:
存在mydb1 mydb2 两个数据库

插入:

>use mydb1
>
>//在mydb1下创建tabl1
>db.createCollection('table1')
>
>//插入记录会自动给ID(时间戳和X混合计算,保证不重复,可以手动设置ID)
>//插入一条记录
>db.table1.insert({name:"条哥",age:22,gender:"M"})
>//插入多条记录
>db.table1.insert([
	{name:"hyf",age:22,gender:"M"},
	{name:"gf",age:21,gender:"FM"},
	{name:"f",age:22,gender:"M"}
])


//insertMany
db.table01_of_test.insertMany([{},{},{}])
//insert
db.table01_of_test.insert([{},{},{}])
//save
db.table01_of_test.save([{},{},{}])



>db.table1.find()

查询:

>//查全部符合条件的记录
>db.table1.find({age:22,name:"hyf"});
>//查一个
>db.table1.findOne({age:22});
>//查询结果的数量
>db.table1.find({}).count();

删除:

>//删除所有符合条件的记录,要带上参数true(默认为删除一个)
>db.table1.remove({age:21,true});
>//删除所有
>remove({})
>db.table1.deleteOne({})
>db.table1.deleteMany({})
>db.table1.delete({"_id":{"$gte:20"}})
>db.table1.delete({"age":{"$gte:50"}})

修改:

>//只会改第一条
>db.table1.updateOne({age:21},
>		{
>			$set{
>				name:"lbw"
>			}
>		}
>)
>//改所有符合条件的
>db.table1.updateMany({age:21},
>		{
>			$set{
>				name:"lbw"
>			}
>		}
>)

其他函数的使用:

>//limit skip sort 可以以任意的顺序进行调用,优先级一定是 sort>skip>limit
>//skip 先跳过n个数据
>//1为正序 -1为倒序
>db.table1.find({}).limit(10).skip(10).sort({age:-1,gender:1});
>//投影  1表示显示出来 0表示不显示  id是默认显示的
>db.table1.find({},{age:1, gender:1, _id:0})
>//

分页公式:
请添加图片描述

索引简单使用:


db.table01_of_test.getIndexes()
db.table01_of_test.ensureIndex({"name":1} ,{"name":"myindex1"})
//-1倒序建
db.table01_of_test.ensureIndex({"name":-1} ,{"name":"myindex-1"})

来个猛的查询

db.createCollection('c1',true)

db.c1.insert([
    {"name":"hyf1","age":23,"score":80},
    {"name":"lls1","age":23,"score":70},
    {"name":"lb1","age":22,"score":60},
    {"name":"wjz1","age":22,"score":100}
])

db.c1.find({
    "age":{"$gte":23},
    "score":{"$gte":70,"$lt":100}
})
      
select * from c1 where  (age>=23 and ( score>=70 or score<100 ) or name='wjz1';   
db.c1.find({
    "$or":[
        {"$and":[
             {"age":{"$gte":23}},
             {"score":{"$gte":70,"$lt":100}}
         ]},        
        {"name":"wjz1"}    
    ]
})  

花里胡哨

db.c1.find({
    "_id":{"$not":{"$mod":[2,1]}}
})

投影select name,age

db.c1.find({
        "name":"hyf1"
},{"_id":0, "name":1})
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值