使用mongoose模块

下载mongoose模块

指令npm install mongoose

// 使用mongoose模块
// 第一步
var mongoose = require('mongoose');
// 连接数据库
mongoose.connect('mongodb://localhost/mjn', {
    useNewUrlParser: true,
    useUnifiedTopology: true
});
// mongoose.connect第一个参数当中的mongodb表示连接本地数据库
// localhost表示数据库本地的一个域名
// localhost后面的:27017表示端口号默认端口号为27107,如果不写端口号则使用默认端口号
// 后面的mjn是数据库的名字

// 第二步
// var db = mongoose.connection;表示数据库的连接对象
var db = mongoose.connection;
// on表示监听事件,如果数据库连接错误就会触发打印数据库连接失败
db.on('error', function () {
    console.log("数据库连接失败!")
});
db.once('open', function () {
    console.log("数据库第一次连接成功!");
});

// 第三步
// 创建schema对象  相当于创建数据库表的表头
var foodSchema = new mongoose.Schema({
    // 注意下列易犯错点
    // 如下我们要插入对数据操作时要写清除有表头,并且给清除表头的字符数据类型不然就会报错
    //例如你下面代码插入数据库内容的时候写了{name:"苹果",age:60,sex:"未知",boy:"男"}
    // 但是你在创建schema对象,创建数据库表头的时候没有定义boy属性并且定义清楚他的数据类型就会报错
    // 并且boy:"男"这条数据也无法写入数据库的表当中
    name: {
        type: String
    },
    age: {
        type: Number
    },
    sex: {
        type: String
    },
    boy: {
        type: String
}
//注意_id属性在使用mongodb的时候系统会自动默认给你设置//不需要自己手动设置
});
// 第四步
// 将schema对象和数据集合进行关联
// 如果参数一这个集合是 你未创建的那么系统会默认帮你创建,并且如果参数一写的是单数形式英文单词,默认会给你变成复数
// mongoose.model("参数一填你要关联的集合名","参数二填上面创建的schema对象如上的foodSchema")
// 数据库相关的命名或者参数都不能写中文,比如数据库名,集合名不可以创建为中文
var foodModel = mongoose.model('foods', foodSchema);
// 第五步
// 执行查询语句
// foodModel.insertMany({name:"苹果",age:60,sex:"未知",boy:"男"})

// 注意细节插入这个操作数据返回的是一个Promoise对象
// 如果想判断是否对数据插入成功,那我们可以用then去打印
// 如下操作完数据如果失败了就会打印出来失败,操作成功也会提示

// 插入操作
foodModel.insertMany({
    name: "西瓜🍉",
    age: 15,
    sex: "未知",
    boy: "gril"
}).then(function (res) {
    console.log("对数据操作成功了1→" + res);
}, function (rej) {
    console.log("对数据操作失败了1→" + rej);
})

// 查找操作
foodModel.find({_id:"5f5701416aa47122f01786df"}).then(function (res) {
    console.log("对数据操作成功了→" + res);
}, function (rej) {
    console.log("对数据操作失败了→" + rej);
})

// 删除操作
foodModel.remove({age:15}).then(function (res) {
    console.log("对数据操作成功了→" + res);
}, function (rej) {
    console.log("对数据操作失败了→" + rej);
})

foodModel.find().then(function (res) {
    console.log("对数据操作成功了2→" + res);
}, function (rej) {
    console.log("对数据操作失败了2→" + rej);
})

// 更改/更新操作
foodModel.updateMany({
    _id: "1"
}, {
    $set: {
        name: "张飒"
    }
}).then(function (res) {
    console.log("对数据操作成功了2→" + res);
}, function (rej) {
    console.log("对数据操作失败了2→" + rej);
})