DB操作
1、help查看命令提示
helpdb.help()db.test.help()db.test.find().help()
2、创建/切换数据库
use music
3、查询数据库
show dbs
4、查看当前使用的数据库
db/db.getName()
5、显示当前DB状态
db.stats()
6、查看当前的DB版本
db.version()
7、查看当前DB的链接机器地址
db.getMongo()
8、删除数据库
db.dropDatabase()
Collection集合操作
1、创建一个集合
db.createCollection("collName",{size:20,capped:true,max:100});db.collName.isCapped(); //判断集合是否为定容量
2、得到指定名称的集合
db.getCollection("account");
3、得到当前db的所有集合
db.getCollectionNames();
4、显示当前db所有集合的状态
db.printCollectionStats();
文档操作
1、添加
db.users.insert({name:'zhangsan' , age:25 , sex:true});db.users.save({name:'zhangsan' , age:25 , sex:true});
2、修改
db.user.update({name:"王五"},{name:"lisi"})不加$set,会覆盖整行db.users.update({age:25} , {$set:{name:'changgename'}} , false , true);相当于update users set name = 'changename' where age = 25;db.users.update({name:'Lisi'} , {$inc:{age:50}} , false , true);相当于update users set age = age + 50 where name = 'Lisi';db.users.update({name:'=Lisi'} , {$inc:{age:50}, $set:{name:'hoho'}},false,true);相当于update users set age = age + 50, name = 'hoho' where name = 'Lisi';db.user.updateMany({sex:{$exists:false}},{$set:{sex:"man"}})给表中的每一行添加一个字段db.user.update({name:"zhangsan"},{$unset:{sex:"man"}})删除某个字段
3、删除
db.user.drop() // 删除集合db.baoluo.remove({name:'m1000'})db.user.deleteOne({name:"王五他爸"})
4、查询
● db.userInfo.find() 查询所有数据● db.userInfo.distinct('name') 查询去重后的数据
● db.userInfo.find({age:'22'}) 查询age=22的记录● db.userInfo.find({age:{$gt:'22'}}) 查询age>22的记录● db.userInfo.find({age:{$lt:'22'}}) 查询age<22的记录● db.userInfo.find({age:{$gte:'22'}}) 查询age>=22的记录● db.userInfo.find({age:{$lte:'22'}}) 查询age<=22的记录● db.userInfo.find({age:{$gte:'22',$lte:'26'}}) 查询age在22到26之间的记录
● db.userInfo.find({name:/mongo/}) 查询name中包含mongo的记录● db.userInfo.find({name:/^mongo/}) 查询name中以monge开头的记录● db.userInfo.find({},{age: 1,name: 1}) 查询指定列name、age数据● db.userInfo.find({age:{$gt:25}},{age:'22',name:’1‘}) 查询指定列name、age数据,age>25
● 按照年龄排序● db.userInfo.find().sort({age:1}) 升序● db.userInfo.find().sort({age:-1}) 降序
● db.userInfo.find({age:'22',name:'zhangsan'}) 查询name=zhangsan,age=22的数据● db.userInfo.find().limit(5) 查询前五条数据● db.userInfo.find().limit(5).skip(3) 跳过三条取五条● db.userInfo.find().skip(10) 查询十条以后的数据● db.userInfo.find().limit(10).skip(5) 查询在5-10之间的数据● db.userInfo.find({$or:[{age:20},{age:25}]}) or与查询● db.userInfo.findOne() 查询第一条数据● db.userInfo.find({age:{$gte:25}}).count() 查询某个结果集的记录条数
5、统计
db.user.find().count() // 统计数据,相当于数组的length属性
索引
索引的查看
db.collection.getIndexes() //返回一个集合中的所有索引的数据
索引的创建
db.collection.createIndex({userid:1}) //单段索引
db.collection.createIndex({userid:1,nickName:-1}) //复合索引,1升序,-1降序
索引的移除
db.comment.dropIndex({userid:1})
db.comment.dropIndex(“userid_1”) //指定名称删除索引
db.comment.dropIndexes() //删除所有索引
索引的执行计划
db.collection.find(query,options).explain(options)
