mongoose连接MongoDB数据库(Node实现)

首先需要在MongoDB中新建一个文档,用来保存你的数据。

介绍一下mongoose中的常用属性

现在来创建 操作数据库的文件

文件目录

首先使用 cnpm install mongoose 安装

完成以后直接在connectMongoDB文件中引入,其中connect中填写你的数据库中的文档。

//连接数据库
var mongoose = require("mongoose");

mongoose.connect('mongodb://localhost/MongoTest_01');

let db = mongoose.connection;

db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function () {
    console.log("连接数据库成功!");
});

mySchema.js文件

再次引入mongoose,然后new一个Schema对象,用来定义操作的数据格式,通过 mongoose.connection.model函数,传入你的数据库集合与上面定义好的数据格式进行映射,生成model对象(此对象可进行数据库操作),将其抛出,在handle.js执行增删查改数据库的逻辑。

let mongoose = require('mongoose')

var TestSchema = new mongoose.Schema({
    stock_name: {
        type: String
    },
    list_market: {
        type: String
    }
});
var TestModel = mongoose.connection.model("testdatacollections", TestSchema); //填写你的数据库 集合(复数形式)

module.exports = TestModel;

注意!

mongoose对操作的集合会自动进行复数形式的转换,所以每个集合名称请用复数形式(普通的后缀加 s 即可)

官方解释

当没有传入collection参数时,Mongoose会通过model name(就是第一个参数),调用utils.toCollectionName方法产生一个collection name,而这个方法会使name变成复数形式。如果你不想要这个过程,只要传入collection name参数或设置Schema中的collection name选项。(=_=看不懂)

handle.js文件

为了实现增删查改等多个操作函数,使用一个handleObj对象包裹起来,通过传入的model对象,传入自己的数据,生成一个Entity对象,通过这个entity对象,实现数据库的增删查改操作(对应的save()、remove()、update()等,参照 Mongoose API函数使用)。最后将函数对象的集合handleObj抛出去,在需要使用的地方调用,并可自定义参数作为传入的数据,对数据库进行操作即可。

let TestModel = require('./mySchema');

let handleObj ={
    insertData:insertData,//增加函数
    selectData:selectData//查找函数
}

function insertData() {
    var TestEntity = new TestModel({
        stock_name: '计科',
        list_market: '广州'
    });
    TestEntity.save(function (err, doc) {
        if (err) {
            console.log("error :" + err);
        } else {
            console.log("插入数据成功");
        }
    });
}

function selectData(){
    console.log("执行查找操作");
}

module.exports = handleObj;

这里假设了在路由改变的时候执行数据库的操作。

效果

Mongoose5.0中文文档

发布了142 篇原创文章 · 获赞 54 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/CWH0908/article/details/103478167
今日推荐