美文网首页
Mongoose的简单使用

Mongoose的简单使用

作者: 被遗忘的传说 | 来源:发表于2017-08-31 11:17 被阅读0次

一、准备工作

1. 启动mongo数据库

mongod
启动成功

2. 新建数据库

cmd + n新建终端窗口

// 使用终端操作数据库
mongo

// 创建mongoosetest数据库
use mongoosetest

二、利用mongoose进行简单的数据库操作

1. 新建项目

  1. 新建空文件夹,命名为 mongooseTestcd
  2. 启动终端,进入该文件夹
  3. 在命令行中输入 npm init 初始化项目
npm init
创建项目
  1. 下载依赖包
cnpm i mongoose -s

2. 连接数据库

在根目录下创建 db.js ,输入以下代码,监听 connection 的几个事件,如果以上操作都没错的话,那么就会监听第一个事件 connect 事件,表示连接数据库成功,在最后,我们导出 mongoose对象 ,以供其他模块使用。

const mongoose = require('mongoose');
//设置mongo存储路径
const dbUrl = 'mongodb://localhost:27017/mongoosetest';
mongoose.connect(dbUrl, {useMongoClient: true})
// 连接成功
mongoose.connection.on('connected', () => {
  console.log('MongoDB connected success.')
})
// 连接异常
mongoose.connection.on('error', () => {
  console.log('MongoDB connected error.')
})
// 连接断开
mongoose.connection.on('disconnected', () => {
  console.log('MongoDB connected disconnected.')
})
//导出mongoose对象
module.exports = mongoose

运行db.js,如下图所示:


3. 新建Schema与发布Model

那么什么是 Schema 呢? schemamongoose 里会用到的一种数据模式,可以理解为我们传统数据库中的表(table)结构的定义,简单地说,就是一个数据模板,每个 schema 会映射到 mongodb 中的一个
collection ,它不具备操作数据库的能力。

那什么又是 Model 呢? Model 是由 Schema 发布生成的模型,具有抽象属性和行为的数据库操作对,
Model 可以直接操作 Mongo 数据库中的数据。

解释完了代码用说话,新建 user.js ,输入以下代码,创建一个 userschema ,并且利用 Schema 发布一个 Model ,导出 Model

// 引入之前我们创建的mongose对象
const mongoose = require('./db')
// 创建一个schema对象
const Schema = mongoose.Schema
// 创建一个schema实例
let UserSchema = new Schema({
  username: {type: String},
  userpwd: {type: String},
  userage: {type: Number},
  logindate: {type: Date}
})
// 利用UserSchema实例,发布一个User的model并且导出
module.exports = mongoose.model('User',UserSchema)

4. Model创造Entity实体,对数据库操作

Entity 又是什么呢? Entity 是由 Model 创建的实体,他的操作也会影响数据库。
新建 insert.js ,输入以下代码:

// 引入User的Model
const User = require('./user')
//创建一个插入数据到数据库中的函数
function insert() {
  // 用Model创建一个Entity实体,就是一个User的数据
  let user_1 = new User({
    username: 'Snow',
    userpwd: '123456',
    userage: 20,
    logindate: new Date()
  })
  // 调用user_1的save方法,插入user_1的数据到数据库中
  user_1.save(function (err, res) {
    if(err){
      console.log("Error: " + err)
    }else{
      console.log("Success Res: " + res)
    }
  })
}
// 执行插入操作
insert()

以上代码中的 user_1 就是 Model 创建的 Entity 实体,它具有很多操作, svae() 只是其中一个。

运行insert.js,命令行输入框得到以下结果:

我们再查看数据库中:

// 查看users集合中的数据
db.users.find()

成功插入一个数据啦~

5. 总结Schema、Model、Entity的关系

  • Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力

  • Model : 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对

  • Entity : 由Model创建的实体,他的操作也会影响数据库

  • Schema、Model、Entity的关系是:Schema生成Model,Model创造Entity,Model和Entity都可对数据库操作造成影响,但Model比Entity更具操作性。

三、mongoose的其他操作

更新数据

这里我们是直接用Model来操作数据库,新建update.js

// 引入User的Model
const User = require("./user")
function update(){
    // wherestr是我们要进行操作的数据
    let wherestr = {'username' : 'Snow'}
    // update是我们更新的数据
    let updatestr = {'userpwd': 'hhhhhh'}
    User.update(wherestr, updatestr, function(err, res){
        if (err) {
            console.log("Error:" + err)
        }
        else {
            console.log("Update Res: " + res)
        }
    })
}
update()

删除数据

新建remove.js,输入以下代码:

const User = require("./user")
function del() {
    //需要删除的数据
    let wherestr = {'username' : 'Snow'}
    User.remove(wherestr,function (err, res) {
        if(err){
            console.log("Error: " + err)
        }else{
            console.log("Success Remove: " + res)
        }
    })
}
del()

相关文章

  • mongoose简单使用

    1、简介 Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具要使用它必须安装好...

  • mongoose的简单使用

    npm install mongoose 下载mongoose模块使用之前先打开mongodb数据库mongod...

  • Mongoose的简单使用

    一、准备工作 1. 启动mongo数据库 2. 新建数据库 cmd + n新建终端窗口 二、利用mongoose进...

  • mongoose简要教程

    主要是自己使用mongoose的一些有疑虑的地方简单介绍 初次使用mongoose的过程中有很多的疑惑,Mongo...

  • mongoose 使用

    mongoose 使用 Mongoose 基础使用 Connect 链接数据库 定义文档模型, Schema 和 ...

  • nodejs初体验,使用node写一个简易邮箱验证注册登录

    开门进山 前置基础 根据官方手册,会使用插件nodemail,mongoose。(本文使用了mongoose,用来...

  • mongodb

    指令 指令 使用mongoose

  • mongoose 操作MongoDB

    操作mongoDB 操作mongoDB 借助一个插件 mongoose mongoose 安装 使用mongoos...

  • mongoose: Schema与Model

    前端js操作mongodb用到了mongoose使用前先安装 $ npm install mongoose 配置连...

  • 模块-mongoose

    mongoose:nodejs上简洁的mongodb对象模型。为什么要做mongoose,当我们使用mongodb...

网友评论

      本文标题:Mongoose的简单使用

      本文链接:https://www.haomeiwen.com/subject/fdifjxtx.html