zoukankan      html  css  js  c++  java
  • mongoose学习文档

    名词解释

    • Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力

    • Model : 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对

    来自cnode社区

    1.创建一个本地数据库并连接:

    var mongoose = require('mongoose');            //获取mongoose模块
    mongoose.connect('mongodb://localhost/nodejs');     //使用mongoose对象的connect方法连接数据库nodejs

    2.定义数据库文档类型:

      对于mongoose,一切行为都要源自 Schema (模型),所以下面,就是要声明和定义Schema了:

    var Schema = mongoose.Schema;
    var MovieSchema = new Schema({
        name : String,
        alias: [String],
        publish: Date,
        create_date:{type: Date,default: Date.now},
        image:{
            coverSmall: String,
            coverBig:String
        },
        source:[{
            source: String,
            link:String,
            swfLink:String,
            quality:String,
            version:String,
            lang:String,
            subtitle:String,
            create_date:{type: Date,default: Date.now}
        }]
    });
    

      变量名可以随便取,这里将mongoose的属性Schema赋值给Schema变量,然后通过Schema新建一个对象,这个对象决定了数据库中文档的形状(格式)

    3.将Schema发布为Model:

    var Movie = mongoose.model("Movie",MovieSchema);
    var MovieDAO = function(){};
    module.exports = new MovieDAO();
    

      定义一个变量接收发布的model,参数里面的Movie是数据库里面的集合(例如上面数据库为nodejs,这里movie就是nodejs里面的集合),不过貌似mongoose不区分大小写,这里是Movie,而查看数据库则是movie。

      第二行代码定义一个空对象,第三行代码引出这个空对象的一个实例,下面就要给这个空对象添加方法了。

    4.给model添加增、改、查

     1)新增

      新增一个文档,我们必须先实例化一个文档(上面的Movie):

    MovieDAO.prototype.save = function(obj, callback) {
        var instance = new Movie(obj);
        instance.save(function(err){
            callback(err);
        });
    };
    

      save方法传入一个obj对象,这个对象用于实例化Movie,实例化的对象赋值给instance,这样instance就是一个真实存在的文档,也拥有了Movie的所有方法,接着就可以使用save(官方API,我们只需关心回调函数就可以了)来插入文档了。

    2)查询

    MovieDAO.prototype.findByName = function(name,callback){
        Movie.findOne({name:name},function(err,obj){
            callback(err,obj);
        });
    };
    

      这里以name字段来查询

    3)更新

    MovieDAO.prototype.updateData = function(name,set,callback){
        Movie.update({name:name},set,function(err){
            callback(err);
        });
    };
    

      这里以name字段作为查询条件,以set作为更新数据,如{name:"shenzhen"}

  • 相关阅读:
    mysql索引
    springboot mybatis 后台框架平台 shiro 权限 集成代码生成器
    java 企业网站源码模版 有前后台 springmvc SSM 生成静态化
    java springMVC SSM 操作日志 4级别联动 文件管理 头像编辑 shiro redis
    activiti工作流的web流程设计器整合视频教程 SSM和独立部署
    .Net Core中的ObjectPool
    文件操作、流相关类梳理
    .Net Core中的配置文件源码解析
    .Net Core中依赖注入服务使用总结
    消息中间件RabbitMQ(一)
  • 原文地址:https://www.cnblogs.com/y-yxh/p/5689555.html
Copyright © 2011-2022 走看看