Mongoose Schemas 深入
发表于:,更新于:,By Minary
上一篇博文有稍稍提了一下 schemas 的定义,这里就结合官网的文档,写写自己的理解。
Defining your schema
下面这个定义应该是已经没什么问题了,不懂的话可以切到上一篇查看。
1 | var mongoose = require('mongoose'); |
需要注意的是,由于 MongoDB 是非关系型数据库, 所以可以像上面的 meta
一样嵌套很多层结构。
被允许的 Schema 类型有:
- String
- Number
- Date
- Buffer
- Boolean
- Mixed
- ObjectId
- Array
Creating a model
接下来定义一个 blogSchema
的模型:
1 | var Blog = mongoose.model('Blog', blogSchema); |
Instance methods
可以直接用 Mongoose 的查询方法查询比方说 findOne
等,可以点这里看文档。
现在想自己定义一个查询的方法,如下:
1 | // define a schema |
Statics
添加静态方法模型也很简单,继续用 animalSchema
:
1 | animalSchema.statics.findByName = function (name, cb) { |
上面的 RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具。
Indexes
MongoDB 支持索引, 在 Mongoose 里我们在创建 schema 的时候定义索引:
1 | var animalSchema = new Schema({ |
link
http://mongoosejs.com/docs/guide.html