使用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);
})