[译]Mongoose指南 - Schema】的更多相关文章

定义schema 用mongoose的第一件事情就应该是定义schema. schema是什么呢? 它类似于关系数据库的表结构. var mongoose = require('mongoose'); var schema = mongoose.Schema; var blogSchema = new Schema({ titile: String, body: String, comments: [{body: String, date: Date}], date: {type: Date,…
MongoDB没有join, 但是有的时候我们需要引用其它collection的documents, 这个时候就需要populate了. 我们可以populate单个document, 多个document, plain object, multiple plain objects或query返回的全部object. var mongoose = require('mongoose'); var Schema = mongoose.Schema; var personSchema = new S…
转自:https://www.bbsmax.com/A/pRdBnKpPdn/ 定义schema 用mongoose的第一件事情就应该是定义schema. schema是什么呢? 它类似于关系数据库的表结构. 1 2 3 4 5 6 7 8 9 10 var mongoose = require('mongoose'); var schema = mongoose.Schema;   var blogSchema = new Schema({     titile: String,     bo…
开始前记住下面几点 Validation定义在SchemaType中 Validation是一个内部的中间件 当document要save前会发生验证 验证不会发生在空值上 除非对应的字段加上了 required validator 可以自定义验证器 内置的验证器 所有的SchemaType都有required验证器 Number有min和max验证器 String有enum和match验证器 自定义验证器 //确保值是something function validator(val){ ret…
编译你的第一个model var xxSchema = new Schema({name: 'string', size: 'string'}); var Tank = mongoose.model('Tank', schema); 构造document document是model的实例. 创建更新document到数据很容易 var Tank = mongoose.model('Tank', tankSchema); var small = new Tank({size:'small'});…
使用mongoose.connect()方法创建连接 mongoose.conect('mongodb://localhost/myapp'); 上面的代码是通过默认端口27017链接到mongodb的myapp数据库.我们还可以给url设定一些特定的参数: mongoose.conect('mongodb://username:pws@host:port/databasename?options...'); Options connect方法可以接受一个options对象 mongoose.c…
Schema支持插件, 这样你就可以扩展一些额功能了 下面的例子是当document save的时候自定更新最后修改日期的出插件 // lastMod.js module.exports = exports = function lastModifiedPlugin (schema, options) { schema.add({ lastMod: Date }) schema.pre('save', function (next) { this.lastMod = new Date next(…
中间件是一些函数, 当document发生init, validate, save和remove方法的时候中间件发生. 中间件都是document级别的不是model级别的. 下面讲讲两种中间件pre和post pre 一共有两种pre中间件serial和parallel 发生在被附挂方法之前 serial serial中间件是一个一个执行的串行执行 var schema = new Schema(..); schema.pre('save', function(next){ //do stuf…
查询有带callback和不带callback两种方式 所有mongoose的callback都是这种格式: callback(err, result) var Person = mongoose.model('Person', yourSchema); Person.findOne({'name.last':'Ghost'}, 'name occupation', function(err, person){ if(err) return handleError(err); console.l…
更新 有几种方式更新document. 先看一下传统的更新方法 Tank.findById(id, function(err, tank){ if(err) return handleError(err); tank.size = "large"; tank.save(function(err){ if(err) return handleError(err); res.send(tank); }); }); 上面的代码是先查找出一个document然后在更新. 如果我们不想查找doc…
在node中使用MongoDB很多情况下,都是使用mongoose的,所以这集来介绍一下 安装 yarn add mongoose 连接 const mongoose = require("mongoose"); mongoose.connect('mongodb://localhost/my_database'); 建立schema 和model shema 相当于对表结构的定义model 定义表 其实,在MongoDB中不能称为表,应该为文档 shema const mongoos…
翻译自:QUICK GUIDE: ANIMATIONS WITH UIVIEWPROPERTYANIMATOR 译者:Haley_Wong iOS 10 带来了一大票有意思的新特性,像 UIViewPropertyAnimator,它是一个改善动画处理的全新的类. 这个视图属性动画完全颠覆了我们已经习惯的流程,能够为动画逻辑添加更精细的控制. 一个简单的动画 让我们来看看如何通过一个简单的动画改变视图的中心点属性. let animator = UIViewPropertyAnimator(du…
说明:本文在个人博客地址为edwardesire.com,欢迎前来品尝. Mongoose学习 这里的Mongoose当然不是图片上的萌物,它是一个MongoDB对象建模工具(object modeling tool),以前在sails上用的Waterline是ORM (Object Relational Mapper).当使用Mongoose时,我们不在需要在数据库中创建好结构(Schema)之后,再与后端代码中创建的对象或类进行映射这样繁琐的操作.在Mongoose的封装下,我们只需定义好J…
前言 Mongoose 是在nodejs环境下,对mongodb进行便捷操作的对象模型工具.本文介绍解(翻)密(译)Mongoose插件. Schema 开始我们就要讲到Schema,一个Schema对应的是mongodb的collection(相当于SQL table),并且定义其结构. var mongoose = require('mongoose'); var Schema = mongoose.Schema; //定义一个博客结构 var blogSchema = new Schema…
前言 看完了Node.js实战,其中在数据存储部分提到了Redis.Mongodb,我自己也根据书中的介绍写了几个简单的demo,在demo的过程首先遇到的问题就是数据类型和常见的CURD写法. mongodb的常见操作有两种方式,一个是直接使用API,也就相当于你在SQL Server客户端中使用T-SQL编写SQL语句来操作数据一样,其次就是在程序中使用mongoose驱动来操作数据,相当于我们在程序里用ADO.NET或EF来操作数据,如果你已经写了几个调用API的demo,那么我建议再回过…
1. 安装Mongoose npm install mongoose 2. 使用 2.1 创建连接 var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test'); 2.2 获取数据库的一些通知信息 var db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); db.on…
1.1 名词解释 Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力 Model : 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对 Entity : 由Model创建的实体,他的操作也会影响数据库 注意: 1.本学习文档采用严格命名方式来区别不同对象,例如: var PersonSchema; //Person的文本属性 var PersonModel; //Person的数据库模型 var PersonEntity; //Person实体 2.Sch…
Mongoose使用结构化的模式应用到MongoDB集合,为MongoDB Node.js原生驱动程序提供了更多的功能和简化了数据库操作. 从创建连接到向数据库中写入一个条数据经历了以下步骤: 1.连接数据库,并创建连接: 2.定义UserSchema(相当于数据库建表) : 3.创建User模型(相当于构建对象和数据库表映射): 4.通过User模块,创建对象 5.通过save方法持久化对象: (参考博客:Mongoose在创建Model时对Collection的命名策略http://www.…
In this post, we’re going to be creating a sample comments system using Node, Express and Mongoose. Mongoose provides an object oriented interface for using MongoDB in Node. Everything in Mongoose starts with a Schema. Each schema maps to a MongoDB c…
先定义了一个article的schema var mongoose = require('mongoose'); var Schema = mongoose.Schema; exports.schema = new Schema({ title: String,//标题 description: String,//描述 content: String,//内容 status:{type: Number, defalut: 0}, //未发布:0 ,发布:1 create_at: {type: D…
MongoDB 安装步骤总结: 1.解压目录到d盘 mongodb 2.安装目录的下新建文件mongo.config文件 ##store data here dbpath=D:\mongodb\data   ##all output go here logpath=D:\mongodb\log\mongo.log   ##log read and write operations diaglog=3 3.d:\mongodb\bin>mongod --config D:\mongodb\mong…
mongoose 需要在Schemas基础上进行使用 var mongoose = require('mongoose'); var Schema = mongoose.Schema; var blogSchema = new Schema({ title: String, author: String, body: String, comments: [{ body: String, date: Date }], date: { type: Date, default: Date.now },…
使用mongoose 加入分页方法,临时还没发现什么更好的方法,我使用的方法是,直接在源代码中加入 找到 node_modules/mongoose/lib/model.js打开这个文件.里面加入这段代码 /** * author:gtt * updateTime:2014-5-3 */ Model.execPageQuery = function find (currentPage,pageSize, conditions, fields, options, callback) { if ('…
nodejs的所有调用几乎是全异步的,而所有的IO操作也都是通过回调函数才能知道结果. 如果一个异步调用依赖另一个异步调用,如果没有Promise的话,有可能陷入传说中的回调地狱. bluebird实现了将异步回调写法转变为链式写法,并且扩展出了catch.finally.bind等api,如catch可以帮我们集中处理每次查询的error. 网上找到的有关promise和bluebird的资料基本都是讲原理和理论,本文介绍的是bluebird实际使用例子.实操中,我们只用将需要使用链式的类和方…
前面的话 Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具.本文将详细介绍如何使用Mongoose来操作MongoDB NodeJS驱动 在介绍Mongoose之前,首先介绍使用NodeJS操作MongoDB的方法 如果使用程序操作数据库,就要使用MongoDB驱动.MongoDB驱动实际上就是为应用程序提供的一个接口,不同的语言对应不同的驱动,NodeJS驱动不能应用在其他后端语言中 首先,安装mongodb npm install mongodb 接着,…
继上一篇设置mongodb副本集之后,开始使用nodejs访问mongodb副本集: 1:创建项目     express 项目名称 2:npm install mongoose    安装mongoose包 3:mongoose连接数据库配置 var mongoose = require('mongoose'); mongoose.Promise = Promise; // Promise.promisifyAll(mongoose); var uri = 'mongodb://172.16.…
深入浅出mongoose mongoose是nodeJS提供连接 mongodb的一个库. 此外还有mongoskin, mongodb(mongodb官方出品). 本人,还是比较青睐mongoose的, 因为他遵循的是一种, 模板式方法, 能够对你输入的数据进行自动处理. 有兴趣的同学可以去Mongoose官网看看. 初入mongoose install mongoose I’ve said that. 使用mongoose你需要有 nodeJS和mongodb数据库. 这两个东西, 前端宝宝…
连接数据库 var mongoose = require('mongoose'); var schema = mongoose.Schema; // 连接MongoDB mongoose.connect("mongodb://localhost:27017"); // 定义模式 var userSchema = new schema({ name : String, sex : String, age : Number }); // 编译模型 var User = mongoose.m…
使用MongoDB的时候,如果遇到下面这个错误: /home/ec2-user/YourProject/node_modules/mongoose/lib/index.js: throw new mongoose.Error.MissingSchemaError(name); ^ MissingSchemaError: Schema hasn't been registered for model "YourModel". Use mongoose.model(name, schema…
名词解释 Schema: 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力 Model: 由Schema编译而成的假想(fancy)构造器,具有抽象属性和行为.Model的每一个实例(instance)就是一个document.document可以保存到数据库和从数据库返回. Instance: 由Model创建的实例. 概念解析 SQL术语/概念 MongoDB术语/概念 解释/说明 rdatabase database   table collection 数据库表/集合 row…