数据库操作
创建或使用数据库mydb
use mydb;//插入数据后,show dbs才可以显示出来;
查看所有数据库
show dbs;
统计当前数据库的信息
db.stats();
删除当前数据库
db.dropDatabase();
注:进入mongo shell 即执行db.dropDatabase()默认删除text数据库,如果没有该数据库则不执行删除操作
集合操作
查看当前数据库中所有的集合
show collections;
获取所有集合的名字,返回数组
db.getCollectionNames()
隐式创建集合,也可用于插入数据,stu为集合名(后面都一样)
db.stu.insert({});
显式创建一个集合
db.createCollection("stu");
获取所有集合的信息
db.getCollectionInfos();
获取指定集合的信息
db.myCollection.stats()
//指定返回哪些key的数据
db.stu.find({},{_id:0,name:1,age:0})
集合重命名
db.users1.renameCollection("users")
循环插入数据
for(var i=0;i<10000;i++){
db.lauf1.insert({name:"jack"+i})
}
插入多条数据
db.c3.insert({key:value},{writeConcern:{},ordered:boolean})
排序查询
db.users.find().sort({key:1/-1})//升序、降序排序
替换更新
db.stu.update({name:"jack"},{"name":"tom",age:20},{upsert:true})
局部更新
db.stu.update({name:"jack19"},{$set:{age:20}},{upsert:true,multi:true})
年龄+1
db.stu.update({name:"jack19"},{$inc:{age:1}},{upsert:true,multi:true})
删除操作
justOne是否只删除一条
db.users.remove({query},{justOne:false,writeConcern})
>db.users.remove({name:"jack"})//删除name为jack的文档
>db.users.remove({})//删除所有文档
>db.users.remove({age:{$gt:20}})//删除年龄大于20的文档
>db.users.deleteMany({})//删除所有文档
>db.users.deleteMany({age:{$lt:20}})//删除年龄小于20的多个文档
>db.users.deleteOne({age:{$gt:10}})//删除一个
查询操作
>db.users.find().pretty()//格式化输出
>db.users.find({query},{projection})//加入查询条件,投影返回的字段
>db.users.find({name:"jack",age:{$lt:20}},{_id:0,name:1,age:1})//过滤key,0不显示
条件查询
>db.users.find({age:{$lte:20}})//age<=20
>db.users.find({age:{$lt:20}})//age<20
>db.users.find({age:{$gte:20}})//age>=20
>db.users.find({age:{$gt:20}})//age>20
>db.users.find(age:{$ne:20})//age!=20
>>db.users.find({name:{$in:["jack","tom"]}})//名字在数组中的文档 ,$nin不在数组
>db.users.find({name:{$not:"abc"}})//名字中不包含abc的文档
>db.users.find({addr:null})//addr为null的文档或者无该字段的文档
>>db.users.find().skip(1).limit(3)//跳过一个,然后返回三个文档
聚合操作
db.users.aggregate([{$group:{_id:"$name",uage:{$sum:"$age"}}}])//在age字段聚合
索引操作
单键索引
db.users.createIndex( { age: 1 } ) //1为升序,-1为降序 默认索引名字 age_1
复合索引
db.users.createIndex({name:1,age:-1})
唯一索引
db.users.createIndex( { "key": 1 }, { unique: true } )
查看集合的索引
db.users.getIndexes()