Mongoose基础入门

2020-03-29  本文已影响0人  梦安web开发

Mongoose介绍

Mongoose是MongoDB的一个对象模型工具,底层使用Mongodb的驱动,提供一套操作MongoDB数据库的接口。

安装

$ npm install mongoose

使用mongoose连接数据库

连接数据库MongoDB,会使用到mongoose.connect()方法。

mongoose.connect('mongodb://username:password@host:port/database?options...');

实例:

const mongoose = require("mongoose");

//由于数据库没设置账号密码,这里省略账号密码  MongoDB的端口号为27017
const url = 'mongodb://127.0.0.1:27017/admin';  
//mongoose.connect 方法来链接 返回的是promise对象
mongoose
//connect参数2是个对象 为可选参数 当出现useNewUrlParser警告时 再来设置
  .connect(url, { useNewUrlParser: true })  
  .then(() => {
    console.log("数据库链接成功");
  })
  .catch(err => {
    console.log("数据库链接失败", err.message);
  });
mongoose.connect(uri, options, function(error) {
  // Check error in initial connection. There is no 2nd param to the callback.
});

// Or using promises
mongoose.connect(uri, options).then(
  () => { /** ready to use. The `mongoose.connect()` promise resolves to undefined. */ },
  err => { /** handle initial connection error */ }
);

数据库增删查改

Mongoose 的一切始于 Schema。每个 schema 都会映射到一个 MongoDB collection ,并定义这个collection里的文档的构成。

var SingerSchema =mongoose.Schema({
     name : String,
     age : Number
})

document 里每个属性的类型都会被转换为 在 SingerSchema 里定义对应的 SchemaType。

允许使用的 SchemaTypes 有:

var SingerSchema =mongoose.Schema({
     name : String,
     age : Number
})
var Singer=mongoose.model("Singer",SingerSchema)

第一个参数是跟 model 对应的集合( collection )名字的 单数 形式。 Mongoose 会自动找到名称是 model 名字 复数 形式的 collection。 对于上例,对的是数据库的集合的singers。

var SingerSchema =mongoose.Schema({
     name : String,
     age : Number
})
//第三个参数要与集合名一致大小写
var Singer=mongoose.model("Singer",SingerSchema,singer)  
Singer.find({},function(err,doc){
    if(err){
        console.log("抛出"+err)
    }
    console.log(doc)
})

另外也可以使用findById, findOne, 和 where 这些静态方法,进行查询。

Singer.create({name:"张三",age:"12"},function(err,doc){
    if(err){
        console.log("抛出"+err)
    }
    console.log("成功")
})
Singer.remove({name:"张三",age:"12"},function(err,doc){
    if(err){
        console.log("抛出"+err)
    }
    console.log("成功")
})
Singer.update({name:"张总"},{age:"333355553"},{ multi: true },function(err,doc){
    if(err){
        console.log("抛出"+err)
    }
    console.log("成功")
})

有效选项:

上一篇下一篇

猜你喜欢

热点阅读