图解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})