mongodb基本介绍
mongodb是一种分布式、非关系型的数据库,它区别于SQLserver ,Mysql,Oricle等常规的关系型数据库。它也被称为文档型的数据库,这是因为mongodb在使用过程中脱离了传统的二维表格形式,使得它在存储数据时更加灵活。在利用mongodb存储数据时给人的感觉更像是在写json文件。
mongoDB的适用场景:
1. 适合作为信息基础设施的持久化缓存层
2. 适合实时的插入、更新与查询,并具备应用程序实时数据存储所需的复制及高度伸缩性
3. 适合文档化格式的存储及查询
4. 适合由数十或数百台服务器组成的数据库
mongoDB不适用场景:
1. 要求高度事务性的系统。例如对于银行或会计等需要大量原子性复杂事物的应用程序来说,还是需要关系型数据库的。
2. 传统的商业智能应用
3. 复杂的表级联查询
mongodb基本语法
打开命令行控制台,输入命令mongo,如果您还没有安装mongodb请查看上篇安装介绍的文章。 在输入mongo命令后我们就会进入到mongodb的命令环境。如果您的系统提示,mongo不是内部或外部命令,那你需要首先配置一下path环境。
找到mongodb安装所在目录,并找到bin目录所在地址,复制地址(默认C:\Program Files\MongoDB\Server\3.2\bin),右键 计算机->属性 -> 高级系统设置 -> 环境变量 ->path 编辑,将地址粘贴在最后。
查看数据库
show dbs; // 默认 显示 test local
添加单条记录
db.admin.insertOne({username:'jack',password:'123456'}); // 自动创建admin文档并插入一条数据
添加多条记录
db.admin.insertMany([{username:'alice',password:'abcd'},{username:'allen',password:'hello'}]);
不区分条数插入记录
db.admin.insert({username:'jone',password:'somewd'});
db.admin.insert([{username:'name1',password:'pw1'},{username:'name2',password:'pw2'}]);
查询文档记录
db.admin.find();
修改单条记录
db.admin.updateOne({username:'allen'},{$set:{password:'1111!!'}});
修改多条记录
db.admin.updateMany({},{$set:{password:'abcd!!'}}); // 不写条件,全部修改
不区分条数修改记录
db.admin.update({username:'jack'},{$set:{password:'hello!!'}});
删除单条记录
db.admin.deleteOne({password:'hello!!'});
删除多条记录
db.admin.deleteMany([{username:'jone'},{username:'name2'}]);
根据条件进行删除
db.admin.remove({username:'name1'});
全部删除
db.admin.remove({}); //不添加条件,删除全部记录
现在admin文档内所有记录都已经被删除,我们需要重新添加一些数据,以便完成下面的学习和操作。新建josn数据如下:
[{ username:'jack',password:'pw000',age:'18'},
{ username:'jone',password:'pw111',age:'20'},
{ username:'allen',password:'pw222',age:'16'},
{ username:'salary',password:'pw333',age:'13'},
{ username:'mesa',password:'pw333',age:'24'} ]
admin文档中插入数据
db.admin.insert(
[{ username:'jack',password:'pw000',age:'18'},
{ username:'jone',password:'pw111',age:'20'},
{ username:'allen',password:'pw222',age:'16'},
{ username:'salary',password:'pw333',age:'13'},
{ username:'mesa',password:'pw333',age:'24'}
]);
条件查询
db.admin.find({age:'13'}); // 查询年龄为13的记录
db.admin.find({age:'13'},{username:1,password:1,_id:0});// 显示字段 0不显示 1 显示
指针方法
db.admin.find({}).size(); // 返回查询结果条数
db.admin.find({}).skip(3); //跳过前3条记录
db.admin.find({}).limit(2); //截取前两条记录
db.admin.find({}).skip(2).limit(2); // 返回第 3 、4 条数据
排序
db.admin.find({}).sort({age:1}); // 按年龄从小到大排序
db.admin.find({}).sort({age:-1}); //按年龄从大到小排序