node使用Mongoose类库实现简单的增删改查

2020-06-17 06:38:48易采站长站整理

Mongoose是在nodejs环境中对MongoDB数据库操作的封装,一种对象模型工具,可以将数据库中的数据转换为javascript对象供我们使用。

Mongoose安装


npm install mongoose

安装成功后,我们就可以使用 require(‘mongoose’)来使用了;

下面是链接本地数据库 mongoosedb,代码如下:


var mongoose = require('mongoose');
var DB_URL = 'mongodb://localhost:27017/dataDb';

/* 链接 */
mongoose.connect(DB_URL);

/* 链接成功 */
mongoose.connection.on('connected', function() {
console.log('Mongoose connection open to ' + DB_URL);
});

// 链接异常
mongoose.connection.on('error', function(err) {
console.log('Mongoose connection error:' + err);
});

// 链接断开

mongoose.connection.on('disconnected', function() {
console.log('Mongoose connection disconnected');
});

如下图所示

从如上代码,监听了几个事件,并且执行触发了connected事件,这表示连接成功。

2. Schema介绍

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

那么如何去定义一个Schema呢?请看如下代码:


var mongoose = require('mongoose');
var TestSchema = new mongoose.Schema({
name: { type: String }, // 属性name,类型为String
age: { type: Number, default: 30 }, // 属性age,类型为Number,默认值为30
time: { type: Date, default: '当前时间' }
});

如上在我们的TestSchema中每个key在我们的文件将被转换为相关的SchemaType定义的一个属性。允许使用的SchemaTypes有如下类型:

String
Number
Date
Buffer
Boolean
Mixed
ObjectId
Array

如果我们在如上编写完成后,我们需要添加额外的键的话,我们可以使用Schema中的add方法.

3. 创建一个模型

我们上面定义了Schema,我们需要将我们的TestSchema转成我们可以使用的模型,模型具有对数据库操作的能力。
我们可以通过 mongoose.model(modelName, schema);

先来结合schema和创建一个模型来简单的看一个demo,如下代码:


var mongoose = require('mongoose');
// schema定义
var TestSchema = new mongoose.Schema({
name: { type: String },
age: { type: String },
sex: { type: String }
});

// 创建model
var TestModel = mongoose.model('test1', TestSchema);

// 初始化数据
var TestInt = new TestModel({
name: 'kongzhi',
age: '30',