博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mongoose学习文档
阅读量:7045 次
发布时间:2019-06-28

本文共 1886 字,大约阅读时间需要 6 分钟。

名词解释

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

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

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"}

 

转载于:https://www.cnblogs.com/y-yxh/p/5689555.html

你可能感兴趣的文章
Linux系统基本网络配置之ifconfig命令
查看>>
看几大IT公司的JSON利器
查看>>
Cocos2d-x 物理场景简单搭建
查看>>
认识“JPG、TXT”格式的病毒
查看>>
redhat6.2配置本地yum源
查看>>
tomcat配置文件server.xml详解
查看>>
ipython的两种安装方式
查看>>
有流媒体功能的lnmp部署练习,强化练习
查看>>
android消息机制,异步和多线程
查看>>
Linux下抓包工具tcpdump以及分析包的工具wireshark
查看>>
设置新建maven项目的jdk版本
查看>>
用copy命令将两个文件绑定,上传asp马
查看>>
FIR.im:iOS 8.1.3 “各路助手挺尸”、“封杀一切助手”的背后
查看>>
我的友情链接
查看>>
找出一个数组中唯一没有成对出现的两个数
查看>>
Ajax (部分一)自己做的,总结页面向后台传Form值、单个值和后台向前台传一个或是一组值...
查看>>
web缓存技术
查看>>
集合知识点
查看>>
Linux快捷键
查看>>
文档对象模型DOM
查看>>