Express Mongodb以及mongoose基础

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qingyulove/article/details/85597997

本篇文章我们学习一下Mongodb的基础知识和基础操作。

Mongodb是一种面向文档的数据库,文档数据库(也称为文档型数据库)是一种 NoSQL 数据库,旨在将半结构化数据存储为文档。文档数据库通常以 JSON 或 XML 格式存储数据。
与传统关系数据库不同的是,每个非关系 (NoSQL) 文档的架构是不同的,可让开发人员、数据库管理员和 IT 专业人员更加灵活地整理和存储应用程序数据并减少可选值所需的存储。
JSON 文档支持使开发人员能够更轻松地序列化和加载包含相关属性和数据的对象。

在MongoDB中的一条记录就是一个文档,是一个数据结构,由字段和值对组成。MongoDB文档与JSON对象类似。字段的值有可能包括其它文档、数组以及文档数组。
我们可以通俗将Mongodb的文档理解为一个JSON对象,下面是一个文档示例:
在这里插入图片描述

那么Mongodb数据库的结构是什么样的呢?

Mongodb有文档和集合构成一个完整的数据库。

1.文档
文档是Mongodb的核心概念,它是键值对的一个有序序列,其数据结构就是json格式。

文档中的值可以是多种不同的数据类型,并且文档的内部结构是可以嵌套的,文档本身也可以作为键的值,使用内嵌文档可以使数据组织方式更加贴近我们的实际场景。

比如我们要存储一个人的信息,Mongodb可能的文档如下:

{
  'name': 'zhangsan',
   'age': 12,
    'address':{
      'city':'xi`an',
       'zipCode':'718000',
       'state':'state name'
    },
    'tel':'12xxxxxxxx'
}

如果我们使用关系型数据库,那么这个结构的文档会被拆分为两张表,一张user,一张address,然后通过主外键进行关联,实现联合查询。总之一句话:当数据结构繁杂,但是数据记录规则的时候,使用Mongodb类型的数据库会更加方便。

2.集合
集合顾名思义就是多个对象,在Mongodb中就是多个文档组成。而多个集合组成数据库。

集合就是一组文档,当然了,常规的做法是将同种类型的文档放在一个集合里面。

关于Mongodb更多的知识我们就不再多说,这里我们只了解其基本概念。只要是数据库,就离不开增删改查,这里我们就来看下在express中怎么使用mongoose来操作Mongodb完成这些基础操作。

mongoose是在node环境中操作Mongodb数据库的一种便捷封装,一种对象模型工具。mongoose可以让我们更加方便的使用Mongodb数据库,mongoose将mongodb数据库中的数据转化为JavaScript对象,提供类似JavaScript的接口,数据格式类似json。

在开始之前,我们需要了解mongoose的几个概念。
1.Scheme:一种以文件形式存储的数据库模型框架,不具备操作数据库的能力。
2.Model:这是由Scheme生成的模型,具备抽象的属性和行为,可以直接操作数据库。
3.Entity:由Model创建的实体,可以直接操作数据库。

通俗讲Scheme就是关系型数据库中表结构的定义,只要我们使用mongoose,那么一切都会从Scheme开始。

实际使用中,Model和Entity都可以直接操作数据库,但是Model更具有操作性,所以我们只需要关注Model就足够了。

接下来我们就通过具体的例子来说明怎么使用mongoose。

首先,我们需要安装mongoose:

yarn add mongoose

在这里插入图片描述

安装成功后,我们就需要在我们的工程中引入mongoose,并且连接mongodb数据库。
我们现在工程目录下创建一个db文件夹用来存放和数据库相关的东西,并在下面创建一个db.js来初始化连接mongodb数据库。

连接mLab对应数据库的地址可以在下面的内容处找到:

在这里插入图片描述

db.js

// 引入mongoose
var mongoose = require('mongoose')
// 定义数据库路径
const DB_URL = "mongodb://<数据库用户>:<数据库密码>@ds145574.mlab.com:45574/<数据库名称>"
// 连接数据库
mongoose.connect(DB_URL)

// 获取mongoose connection对象
var db = mongoose.connection

// 连接数据库错误回调
db.on('error', console.error.bind(console, 'connection error:'));

// 成功打开数据库回调
db.once('open', function() {
  console.log('数据库连接成功');
});

module.exports = mongoose

为了方便,我们直接在app.js中引入db.js,使工程运行初就连接数据库。

var mongoose = require('./db/db')

此时,我们重新运行程序,如果连接成功,那么会在控制台看到下面的输出:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qingyulove/article/details/85597997