名词解释

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

mongoose学习文档的更多相关文章

  1. Openstack api 学习文档 & restclient使用文档

    Openstack api 学习文档 & restclient使用文档 转载请注明http://www.cnblogs.com/juandx/p/4943409.html 这篇文档总结一下我初 ...

  2. 2013 最新的 play web framework 版本 1.2.3 框架学习文档整理

    Play framework框架学习文档 Play framework框架学习文档 1 一.什么是Playframework 3 二.playframework框架的优点 4 三.Play Frame ...

  3. Openstack python api 学习文档 api创建虚拟机

    Openstack python api 学习文档 转载请注明http://www.cnblogs.com/juandx/p/4953191.html 因为需要学习使用api接口调用openstack ...

  4. .Net 官方学习文档

    .Net 官方学习文档:https://docs.microsoft.com/zh-cn/dotnet/articles/welcome

  5. soapUI学习文档(转载)

    soapUI 学习文档不是前言的前言记得一个搞开发的同事突然跑来叫能不能做个WebService 性能测试,当时我就凌乱了,不淡定啊,因为我是做测试的,以前连WebService 是什么不知道,毕竟咱 ...

  6. NodeJS-001-Nodejs学习文档整理(转-出自http://www.cnblogs.com/xucheng)

    Nodejs学习文档整理 http://www.cnblogs.com/xucheng/p/3988835.html 1.nodejs是什么: nodejs是一个是javascript能在后台运行的平 ...

  7. Ext JS 6学习文档-第8章-主题和响应式设计

    Ext JS 6学习文档-第8章-主题和响应式设计 主题和响应式设计 本章重点在 ExtJS 应用的主题和响应式设计.主要有以下几点内容: SASS 介绍和入门 主题 响应式设计 SASS 介绍和入门 ...

  8. Ext JS 6学习文档-第7章-图表

    Ext JS 6学习文档-第7章-图表 使用图表 本章中将探索在 ExtJS 中使用不同类型的图表并使用一个名为费用分析的示例项目结束本章所学.以下是将要所学的内容: 图表类型 条形图 和 柱形图 图 ...

  9. Ext JS 6学习文档-第6章-高级组件

    Ext JS 6学习文档-第6章-高级组件 高级组件 本章涵盖了高级组件,比如 tree 和 data view.它将为读者呈现一个示例项目为 图片浏览器,它使用 tree 和 data view 组 ...

随机推荐

  1. 【必备】史上最全的浏览器 CSS & JS Hack 手册(转)

    浏览器渲染页面的方式各不相同,甚至同一浏览器的不同版本(“杰出代表”是 IE)也有差异.因此,浏览器兼容成为前端开发人员的必备技能.如果有一份浏览器 Hack 手册,那查询起来就方便多了.这篇文章就向 ...

  2. Python基本时间转换

    时间转换 python中处理时间的时候,最常用的就是字符形式与时间戳之间的转换. 把最基本的转换在这里记下来 string -> timestamp import time import dat ...

  3. 微软成立反网络犯罪中心,工作环境如美剧CSI情景

    微软在总部大楼内设立新网络犯罪中心(Cybercrime Center),旨在针对全球恶意软件.僵尸网络以及其他互联网犯罪行为进行实时追踪并予以打击.微软将“网络犯罪中心”设置在雷德蒙德总部大楼,目的 ...

  4. 计算机网络(2)-----ARP协议

    ARP协议(Address Resolution Protocol) 概念 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/I ...

  5. tinymce 编辑器 上传图片

    tinymce编辑器进行本地图片上传 首先下载tinymce.js之后 在form中添加一个<textarea>元素 给其一个id和name 然后就可以初始化编辑器了 tinymce.in ...

  6. pads 扇出

    1 选择BGA器件 2.扇出设置 3 安全间距问题 4 可以区域扇出也可以多点扇出

  7. 获取su后执行的脚本的返回值

    错误的方式: # su - testuser -c "/tmp/test.sh; echo $?"Sun Microsystems Inc.   SunOS 5.10      G ...

  8. HM NIS Edit 2.0.3 Win32 Error. Code:740.请求的操作需要提升

    使用NSIS安装向导,生成脚本后,按F9后,居然提示:HM NIS Edit 2.0.3 Win32 Error. Code:740.请求的操作需要提升 一开始就出错了,还真不顺. 在网上搜索了一下, ...

  9. HOW TO BE SINGLE 最后那段的摘录

    我一直在思考我们不得不单身的时间这个时间我们需要擅长一个人独处但是有多少独处的状态是我们想要拥有的呢难道不是件很危险的事情吗当你适应状态并且如鱼得水的时候所以当你安定下来 你就会与某人擦肩而过吗 有些 ...

  10. PHP性能分析 - ngnx日志分析

    最终结果展示图: 图解:响应时间在40ms以内的请求数占请求总量的7%,40到80ms的的请求数占32.9%,依次类推... 性能问题有很多种可能,普通的情况通过xhprof可查得主要的性能损耗.但有 ...