记下mongoose(转载)

连接mongodb时使用的是mongoose模块,安装和使用方法如下:

安装:

npm install mongoose --save

使用:

let mongoose = require('mongoose');

 

mongoose主要分为三个部分:

schema(映射),model(模型),entity(实体)

三者的关系是:schema生成model,model生成entity,其中model和entity可以对数据库进行操作,实例如下:

// 定义Schema
UserSchema = new mongoose.Schema(
{ user: {
//姓名 type: String }, password: String
,// 密码
shopCar: {
type: Array,
// default: []
}
},
{ collection:
'user'}
);

// 定义Model
let UserModel = mongoose.model('user', UserSchema);
let TestEntity
= new User({ user : req.query.user, password : req.query.password, shopCar: [] });


坑提示:其中在定义schema的时候,如果不加第二个参数,那么即使你在model中定义了表名为‘user’,mongoose会智能的在表名末尾添加一个's',那么你查询的表就会变成‘users’表,所以,为了安全,务必加上{collection:'table_name'}
坑提示:在接口的处理内,处理完后记得把数据库的连接关闭::mongoose.connection.close()。

建议:生成schema和model的代码单独放在一个文件中,module.export暴露model的接口,需要使用时在主文件中require即可,节约每次都要重新写的问题。

问题:在向数据库添加时可以使用

TestEntity.save(function(error,doc){
  if(error){
    console.log("error :" + error);
  }else{
    console.log(doc);
    db.close();
  }
});


entity对象尽量每个schema对象定义的key都写上,不然又可能会添加失败
提示:save要重启数据库才会看到添加后的数据

提示:如果想要查询一个表的所有数据,可以使用如下方法:

User.find({}, function (error, docs) {
  if(error) {
    console.log("error :" + error);
   } else {
     console.log(docs);
   }
) 

  

 

原文地址:https://www.cnblogs.com/mzzz/p/11062781.html