注册

Nodejs实现的操作MongoDB数据库功能完整示例

下面我来为你详细讲解“Nodejs实现的操作MongoDB数据库功能完整示例”的完整攻略。

一、环境搭建

在开始实现功能之前,我们需要先安装node.js和mongodb,并配置好环境。这里我简单说明一下安装步骤(以Ubuntu为例):

  1. 安装node.js:
$ sudo apt-get install nodejs
  1. 安装npm:
$ sudo apt-get install npm
  1. 安装mongodb:
$ sudo apt-get install mongodb
  1. 安装mongoose:
$ npm install mongoose

安装完以上组件后,就可以开始实现我们的功能了。

二、示例说明

我们将分两个示例说明如何实现操作mongodb数据库。第一个示例将演示如何建立连接、插入数据、查询数据、删除数据;第二个示例将演示如何建立连接、监听集合的插入事件,自动将插入的数据存储到其他集合中。

示例一

  1. 建立连接
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');

注意:如果mongodb需要密码登录,可以使用以下方式:

var mongoose = require('mongoose');
mongoose.connect('mongodb://username:password@127.0.0.1:27017/test');
  1. 定义Schema
var Schema = mongoose.Schema;
var studentSchema = new Schema({
    name: String,
    age: Number,
    sex: String
});
  1. 定义Model
var Student = mongoose.model('Student', studentSchema);
  1. 插入数据
var xiaoming = new Student({
    name: 'Xiao Ming',
    age: 20,
    sex: 'male'
});

xiaoming.save(function (err) {
    if (err) {
        console.log(err);
        return;
    }

    console.log('Save success!');
});
  1. 查询数据
Student.find({name: 'Xiao Ming'}, function (err, docs) {
    if (err) {
        console.log(err);
        return;
    }

    console.log(docs);
});
  1. 删除数据
Student.remove({name: 'Xiao Ming'}, function (err) {
    if (err) {
        console.log(err);
        return;
    }

    console.log('Remove success!');
});

示例二

  1. 建立连接
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
  1. 监听插入事件
var studentSchema = new mongoose.Schema({
    name: String,
    age: Number,
    sex: String
});

studentSchema.post('save', function (doc) {
    var Score = mongoose.model('Score');
    var score = new Score();

    score.studentId = doc._id;
    score.save(function (err) {
        if (err) {
            console.log(err);
        }
    });
});

var Student = mongoose.model('Student', studentSchema);

  1. 定义插入的数据模型
var scoreSchema = new mongoose.Schema({
    studentId: mongoose.Schema.Types.ObjectId,
    score: Number
});

var Score = mongoose.model('Score', scoreSchema);

以上就是操作mongodb数据库的示例,希望对你有所帮助。