DB操作

1、help查看命令提示

  1. help
  2. db.help()
  3. db.test.help()
  4. db.test.find().help()

2、创建/切换数据库

  1. use music

3、查询数据库

  1. show dbs

4、查看当前使用的数据库

  1. db/db.getName()

5、显示当前DB状态

  1. db.stats()

6、查看当前的DB版本

  1. db.version()

7、查看当前DB的链接机器地址

  1. db.getMongo()

8、删除数据库

  1. db.dropDatabase()

Collection集合操作

1、创建一个集合

  1. db.createCollection("collName",{size:20,capped:true,max:100});
  2. db.collName.isCapped(); //判断集合是否为定容量

2、得到指定名称的集合

  1. db.getCollection("account");

3、得到当前db的所有集合

  1. db.getCollectionNames();

4、显示当前db所有集合的状态

  1. db.printCollectionStats();

文档操作

1、添加

  1. db.users.insert({name:'zhangsan' , age:25 , sex:true});
  2. db.users.save({name:'zhangsan' , age:25 , sex:true});

2、修改

  1. db.user.update({name:"王五"},{name:"lisi"})
  2. 不加$set,会覆盖整行
  3. db.users.update({age:25} , {$set:{name:'changgename'}} , false , true);
  4. 相当于update users set name = 'changename' where age = 25;
  5. db.users.update({name:'Lisi'} , {$inc:{age:50}} , false , true);
  6. 相当于update users set age = age + 50 where name = 'Lisi';
  7. db.users.update({name:'=Lisi'} , {$inc:{age:50}, $set:{name:'hoho'}},false,true);
  8. 相当于update users set age = age + 50, name = 'hoho' where name = 'Lisi';
  9. db.user.updateMany({sex:{$exists:false}},{$set:{sex:"man"}})
  10. 给表中的每一行添加一个字段
  11. db.user.update({name:"zhangsan"},{$unset:{sex:"man"}})
  12. 删除某个字段

3、删除

  1. db.user.drop() // 删除集合
  2. db.baoluo.remove({name:'m1000'})
  3. db.user.deleteOne({name:"王五他爸"})

4、查询

  1. db.userInfo.find() 查询所有数据
  2. db.userInfo.distinct('name') 查询去重后的数据
  1. db.userInfo.find({age:'22'}) 查询age=22的记录
  2. db.userInfo.find({age:{$gt:'22'}}) 查询age>22的记录
  3. db.userInfo.find({age:{$lt:'22'}}) 查询age<22的记录
  4. db.userInfo.find({age:{$gte:'22'}}) 查询age>=22的记录
  5. db.userInfo.find({age:{$lte:'22'}}) 查询age<=22的记录
  6. db.userInfo.find({age:{$gte:'22',$lte:'26'}}) 查询age2226之间的记录
  1. db.userInfo.find({name:/mongo/}) 查询name中包含mongo的记录
  2. db.userInfo.find({name:/^mongo/}) 查询name中以monge开头的记录
  3. db.userInfo.find({},{age: 1name: 1}) 查询指定列nameage数据
  4. db.userInfo.find({age:{$gt:25}},{age:'22'name:’1‘}) 查询指定列nameage数据,age>25
  1. 按照年龄排序
  2. db.userInfo.find().sort({age:1}) 升序
  3. db.userInfo.find().sort({age:-1}) 降序
  1. db.userInfo.find({age:'22'name:'zhangsan'}) 查询name=zhangsanage=22的数据
  2. db.userInfo.find().limit(5) 查询前五条数据
  3. db.userInfo.find().limit(5).skip(3) 跳过三条取五条
  4. db.userInfo.find().skip(10) 查询十条以后的数据
  5. db.userInfo.find().limit(10).skip(5) 查询在5-10之间的数据
  6. db.userInfo.find({$or:[{age:20},{age:25}]}) or与查询
  7. db.userInfo.findOne() 查询第一条数据
  8. db.userInfo.find({age:{$gte:25}}).count() 查询某个结果集的记录条数

5、统计

  1. 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)