数据库操作
查看数据库
show dbs
创建并使用数据库
use 数据库名称(如果没有会新建)
删除数据库,删除当前使用的数据库
db.dropDatabase()
删除集合表
db.grade.drop()
注意:如果当前集合存在则直接删除,并返回 true ,否则返回false
插入数据
插入一条数据,返回值是插入的id
db.student.insertOne({'name':'zhangsan','age':30});
插入数据,返回值是插入的数量
db.student.insert({'name':'zhangsan','age':40});
插入多条文档数据
db.student.insertMany([{'name':'李四','age':34},{'name':'赵六','age':66}])
注意:里面是数组包对象的格式
查询数据
查询name=张三的数据
db.student.find({'name':'zhangsan'});
查询去除重复后的数据 distinct
db.student.distinct("name");
查询age=34;如果有,直接返回结果;没有则为空
db.student.find({'age':34});
查看age>34
db.student.find({'age':{$gt:34}})
查看age<34
db.student.find({'age':{$lt:34}})
查看 age>=34
db.student.find({'age':{$gte:34}})
查看 age<=34
db.student.find({'age':{$lte:34}})
查看 age >=20 并且 age <= 40
db.student.find({'age':{$gte:20,$lte:40}});
模糊查询-查询名称中带有 a 的
db.student.find({'name':/a/});
查询名称是以j开头的 ^
db.student.find({'name':/^j/})
查询名称是以k结尾的 $
db.student.find({'name':/k$/})
查询指定列,查询age,1表示使用当前这个字符
db.student.find({'age':{$gte:34}},{name:1});
升序和降序 sort
db.student.find().sort({age:1}); 升序
db.student.find().sort({age:-1}); 降序
查询指定条数 limit
db.student.find().limit(3);
按照升序排序,获取前三条数据
db.student.find().sort({age:1}).limit(3);
or 或 操作
db.student.find({$or:[{age:18},{age:29}]});
findOne 查询第一条数据
db.student.findOne();
db.student.find().limit(1);
统计 count
统计一共有多少条信息
db.student.find().count();
统计年龄在40岁以上的有多少人(包含40岁)
db.student.find({age:{$gte:40}}).count();
mongodb整个操作,跟js非常相似,使用的都是 链式操作 + 方法 + 参数值
更新操作
将name=jack数据的年龄修改为12
db.student.update({'name':'jack'},{$set:{'age':16}});
将王五的名称修改为王中王,年龄修改为39
db.student.update({'name':'王五'},{$set:{'name':'王中王','age':39}});
如果修改某条字段中的所有数据,可以省略set关键词
db.student.update({'name':'王中王'},{'name':'王中王','age':49});
修改张三,年龄修改为35;修改匹配到的第一条数据
db.student.update({'name':'zhangsan'},{$set:{'age':35}});
修改匹配到的所有数据
db.student.update({'name':'zhangsan'},{$set:{'age':37}},{multi:true});
修改单条数据
db.student.updateOne();
修改多条数据
db.student.updateMany({'age':{$gt:10}},{$set:{'status':'1'}})
数字加不加引号是有区别的,加引号的是数字字符串,不加引号的是数字
删除
删除name=赵六的值
db.student.remove({'name':'赵六'});
删除name=zhangsan的值
db.student.remove({'name':'zhangsan'});
删除一条数据
db.student.remove({'name':'zhangsan'},{justOne:true});
注意:justOne 可选参数,如果值为true或1,就只能删除一条数据;默认为false。=,可以删除多条数据