zoukankan      html  css  js  c++  java
  • 记下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);
       }
    ) 
    

      

     

  • 相关阅读:
    dart 函数迭代器
    dart 编译
    dart 扩展方法
    dart 包
    默认2345导航
    (24)WPF 数据绑定
    (22)WPF 控件模板
    JSP慕课网之Session
    HTML <td> 标签的 colspan 属性
    HTML Input属性
  • 原文地址:https://www.cnblogs.com/mzzz/p/11062781.html
Copyright © 2011-2022 走看看