MongoDB数据库

1、NoSQL数据库:非关系型数据库。数据的组织形式不是二维表格。即Not Only SQL,不能使用SQL结构化语句操作数据,适合存储超大规模、数据长度不确定的数据,数据没有固定的格式,不需要前期进行任何的设置就可以兹有的横向扩展。

2、MongoDB的含义:

是用C++编写的,用于分布式系统的数据存储。

存储数据的格式是键值对形式 key:value

数据库:database(mysql中也是一样)

数据表:mongodb:collection(集合),myaql:table

行:mongodb:document(文档),mysql:row

3、MongoDB的数据类型:String、Integer、Boolean、Array、Timestamp(时间戳)

ObjectId:类似唯一主键,长度为12个字节,通常用于生成文档的_id值。

强调:在monodb中,每个文档都有一个id属性,若用户在创建文档是没有给出 _id,MongoDB会用ObjectId来为 _id生成一个值,

_id的值是唯一的,用来唯一标识一个文档(一条记录)在添加文档时必须要自己给一个_id

4、MongoDB的基本操作

2、mongoose模块:

(1)是一个对象模型的工具,是对nodejs环境下操作mongoDB数据库进行了封装,可以将mongoDB数据库中的数据转换成javascript对象供用户使用。

(2)名词:

a、schema:它是以一种文件形式存储的数据库模型骨架,不具备对数据库操作的能力,仅仅只是数据库在程序片段中的一种表现,可以理解为表结构。实现一种映射。

b、model:有schema发布生成的模型,具有抽象属性和行为的数据库操作。

c、entity:由model创建的实体,它的操作也会影响数据库

(3)命名规范:驼峰命名

PersonSchema:Person对应的Schema,Person 的文本属性(表结构)

PersonModel:Person对应的模型。操作数据库

PersonEntity:Person对应的实体

Schema生成的Model,由Model生成Entity,Model和Entity都可以操作数据库,Model的可操作性更强

3、Mongoose模块的使用

(1)安装:npm install Mongoose

(2)创建数据库的连接文件:

(3)创建Schema,再由Schema创建Model

a、Schema:定义的是与集合定义的骨架,Schema中的属性对应的是MongoDB中集合的key

b、Model:是Schema的一个实例,用于操作mongodb集合中的文档。

关于模型名和数据中集合名称的对应关系

(1)数据库中没有集合:

mongoose.model('Book',BookSchema)==>在模型名后加s就是集合名(不区分大小写)==>books

mongoose.model('Book','BookSchema','book')==>第三个参数就是用户定义的集合名

(2)数据库中有集合:

mongoose.model('Book','BookSchema','数据库中已有的集合名')

4、mongoose的基本操作

(1)插入文档:save方法

a、先使用model创建一个Entity,Entity也就是一个实例

b、再使用Entity调用save方法

(2)删除文档:直接用Model调用

findByIdAndDelete:作用是根据文档的_id属性来删除

deleteOne:作用是根据给定的条件删除文档

(3)更新文档:findOneAndUpdate,用model直接调用

findOneAndUpdate(条件,更新语句,{},回调函数)第三个参数也可以不写

updateOne:

(4)查询:

find:查询所有

findById:按_id查询

findOne:多条件查询,找到满足条件的第一条记录

满足条件的所有记录

count:查询集合中的文档数

二、在接口中间件(自定义的接口文件)中使用Mongoose模块

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值