mongoose是用于连接和操作数据库的第三方模块;
安装MongoDB模块
npm install mongoose --save
导入模块
var mongoose = require("mongoose");
连接数据库 connect连接:
1. 数据库的链接地址,mongodb://代表数据库自身的地址协议
2. 端口27017可以在数据库安装文件里面更改mongo.conf
3. mongoOne代表数据库名称,假如数据库存在,直接连接 如果数据库不存在先创建后连接
mongoose.connect("mongodb://127.0.0.1:27017/mongoOne", {
useNewUrlParser: true,
useCreateIndex: true,
useUnifiedTopology: true,
useFindAndModify: false
}, function (err) {
if (err) {
console.log("数据库连接出错了" + err);
} else {
console.log("数据库连接成功");
}
});
建表 mongoose.Schema是数据库对象下面的建表函数,传递对象(可以根据对象来建表)
var peopleSchema = new mongoose.Schema({
name: String,
age: Number
});
根据表结构的描述,告诉数据库对象根据该结构生成一个表
model就是制作一张表 第一个参数是表名 第二个参数是结构
函数会返回当前构建的数据库表对象
var People = mongoose.model("people", peopleSchema);
People表对象,一切的增删改查都需要通过People来完成
People()构造函数,是 上面表对象提供的
var p1 = new People({
// 对象的数据类型一定要和表结构的相同
name: "孙悟空",
age: 999
});
save保存数据 该方法是people对象提供:把对象存入到数据库表中
var p2 = new People({
name: "唐僧",
age: 66
}).save();
查询,插入的数据在mongodb客户端上可以直接查询,但是nodejs查询需要等到下次启动才可以
表的查询和mongodb命令一样,只不过最后多了个回调,第一个参数是此次查询如果出错的对象,第二个 是此次查询的数据
升序
People.find(function(err,data){
if (err) {
console.log(err);
} else {
console.log(data);
}
}).sort({age:1});
可以精准查询数量
People.count(function (err, count) {
if (!err) {
console.log("当前表中数据数:" + count);
}
});
删除
People.remove({age: 66}, function (err){
console.log("删除成功");
});
更新
People.update({ age: 666}, {age: 100}, {multi: true}, function (err) {
if (err) {
console.log("更新出错:" + err);
} else {
console.log("更新成功");
}
});