Node.js学习(六)Mongodb数据库

学习视频
Node.js学习(一)介绍
Node.js学习(二)异步、缓存区、文件系统
Node.js学习(三)常用模块与网络爬虫
Node.js学习(四)网络服务器
Node.js学习(五)express框架

数据库

可视化工具:mongoVUE

  1. 什么是数据库?
    数据库(database)是一个按照数据结构进行数据的组织、管理、存放数据的仓库。
  2. 关系型数据库
    按照关系模型存储数据的数据库,数据与数据之间的关联非常密切,可以实现跨数据表查询数据,占用更少的硬盘实现更多数据存储。
    T-SQL标准的结构化查询语言,是关系型数据库的通用查询语言。
    常见的关系型数据库:MySQL SQL-Server acess …
    结构:一台服务器=>数据库=>数据表=>数据行
  3. 非关系型数据库
    不按关系模型存储数据的数据库,统称为nosql。
    第一层含义,不是SQL,不是关系型数据库。
    第二层含义:Not Only SQL,不仅仅是SQL。
    结构:一台服务器=>数据库=>集合=>文档
  4. Mongodb
    Mongodb是一个基于分布式文件存储的数据库,目前是世界上用的最多的非关系型数据库,也是最像关系型的非关系型数据库。
    主要特点:
    Ø 面向集合存储,易存储对象类型的数据
    Ø 模式自由
    Ø 支持动态查询
    Ø 支持完全索引,包含内部对象
    Ø 支持查询
    Ø 支持复制和故障恢复
    Ø 使用高效的二进制数据存储,包括大型对象(如视频等)
    Ø 自动处理碎片,以支持云计算层次的扩展性
    Ø 支持RUBY,PYTHON,JAVA,C++,PHP等多种语言
    Ø 文件存储格式为BSON(一种JSON的扩展,二进制+JSON)
    Ø 可通过网络访问
  5. MongoDB可视化工具:mongovue

安装配置MongoDB

MongoDB下载、安装、配置、使用

  1. 安装MongoDB软件
    文件结构
  2. 设置环境变量
    找到安装目录,找到mongo命令所在位置 D:\Program Files\MongoDB\Server\4.0\bin
    将命令位置添加到环境变量:
    我的电脑-属性->高级系统设置->环境变量->修改PATH值,将安装目录添加到PATH中

MongoDB基础命令

在命令行中运行:mongo 进入数据管理模式
在数据库管理模式中只能执行数据库命令,不能执行其他命令
exit 退出数据库管理模式

常用命令

数据库命令
  1. 显示所有数据库列表
show dbs
  1. 创建数据库
use 数据库名
//如果数据库名不存在,则创建;如果数据库已存在,则进入
  1. 查看当前数据库
db
  1. 删除数据库
db.dropDatabase();
集合的命令
  1. 显示当前数据库中所有集合
show collections
  1. 创建集合
db.集合名.insert({});
//通常,在创建数据库时自动创建集合,不需要创建集合
  1. 删除集合
db.集合名.drop();
文档(数据)的操作
  1. 新增文档(数据)
db.集合名.insert({BSON数据})
db.集合名.save({BSON数据});

例如`db.user.insert({“name”:'admin",“password”:“123456”});
db.user.save({“name”:'lili",“password”:“654321”});
insert和save方法的区别:
.insert() 向集合中插入一条数据【推荐使用】
.save() 向集合中添加一条数据,如果集合中已经存在该数据则更新
2. 查询文档(数据)

db.集合名.find(); //查找当前集合中的所有数据
db.集合名.find({条件对象}); //符合条件的数据被查出来
db.集合名.findOne();
db.集合名.find.pretty();//将找到的数据以格式化的结果显示出来。
  1. 修改文档
db.集合名.update(查找对象,修改结果);
  1. 删除数据
db.集合名.remove({});//删除当前集合中的所有数据
db.集合名.remove({条件对象});//删除指定数据

注意:由于删除和更新操作会造成数据极大影响,所以一定要谨慎!

高级命令

  1. 按指令条件查询
//需求:查找到所有女明星
db.singer.find({"sex":"女"});
//SQL:	select * from singer where sex="女"
  1. 大于
db.集合名.find({字段名:{$gt:值}});
//db.singer.find({"age":{$gt:50}});//需求:查找年龄大于50岁的所有数据
  1. 大于等于
db.集合名.find({字段名:{$gte:值}});
  1. 小于
db.集合名.find({字段名:{$lt:值}});
  1. 小于等于
db.集合名.find({字段名:{$lte:值}});
  1. 查询指定范围的数据
db.集合名.find({字段名:{$gt:小值,$lt:大值}});

7.$in子句

db.集合名.find({字段名:{$int:[数组值]}});
//例:db.singer.find({name:{$int:['刘德华','张学友']}});

8.按数组元素的个数查找

db.集合名.find({字段名:{$size:数量}});
//例:db.singer.find({work:{$size:1}});//查找只有一个代表作的歌手
  1. $or子句,查找多条件时,符合其中一个就找出来
db.集合名.find({$or:{字段名:值,字段名:值}});
  1. 排序sort()
db.集合名.find().sort({字段名:1,字段名:-1})
//1是升序(从小到大);-1降序(从大到小)
  1. 限定输出 limit() skip()
.limit(数字)  //限定输出数据的条数
.skip(数字)  //跳过指定的数据条数
扩展:这两个限定输出的语句主要用于分页

//需求:只查找年龄最大的三个人
db.singer.find().sort({"age":-1}).limit(3);
//需求:查看年龄在第三、第四、第五三个人
db.singer.find().sort({"age":-1}).skip(2).limit(3);

12.模糊查询

db.集合名.find({字段名://});
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值