美文网首页前端
mongoose中文文档

mongoose中文文档

作者: suporka | 来源:发表于2017-09-21 10:58 被阅读845次

本人编译官方教程部分内容,括号中内容为个人见解,转载请注明出处,谢谢

开始

  • 首先得确认你已经安装了 Mongodb 和 Node.js
  • 接着使用命令行工具 npm 安装 mongoose

$ npm install mongoose

  • 现在我们想模糊 kittens 且记录每一个我们曾经在 mongoDB 中遇到的 kittens. 首先我们要做的是将 mongoose 导入我们的项目,并且建立一个与本地运行的 mongodb 数据库连接的 connect .
// getting-started.js
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');

(在入口文件中引入mongoose)

  • 我们将有一个与运行在localhost的测试数据库的连接过程。那么我们现在需要得到一些关于连接成功或失败的消息。
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function (callback) {
  // yay!
});
  • 一旦我们的连接打开,回调将会启用。为了方便起见,我们假定所有的代码都在此回调中。
    ◆◆◆
  • 在 mongoose 中,一切来自于 Schema(模式)。让我们参考一下并且定义我们的 kittens.
var kittySchema = mongoose.Schema({
    name: String
})
  • 到目前还好!我们已经获得了一个带有 string 类型的属性的 schema .下一步是将我们的 schema 转化成一个 model.
var Kitten = mongoose.model('Kitten', kittySchema)
  • model 就是一个可以创建文件的类。在这个案列中,我们 schema 中每一个 document 都将成为一个带有多个属性和行为的kitten。接下来让我们创造一个kitten实例。
var silence = new Kitten({ name: 'Silence' })
console.log(silence.name) // 'Silence'

我们看看如何增加一个 speak 功能到我们的 document 中去

// NOTE: methods must be added to the schema before compiling it with mongoose.model()
kittySchema.methods.speak = function () {
  var greeting = this.name
    ? "Meow name is " + this.name
    : "I don't have a name"
  console.log(greeting);
}
var Kitten = mongoose.model('Kitten', kittySchema)

◆◆◆
(◆◆◆之间的内容应该写在一个model类型的js文件中)

  • function 增加了 schema 编译 model 原型的方法属性并且暴露每个 document 实例。
var fluffy = new Kitten({ name: 'fluffy' });
fluffy.speak() // "Meow name is fluffy"

(这部分内容应于路由的回调中定义)

  • 我们到目前为止仍然没有保存任何东西到 Mongodb 中去。每个 document 可以通过调用其 save 方法保存到数据库中。如果没有任何东西产生,那么第一个 argument 的回调将会是一个 error。
fluffy.save(function (err, fluffy) {
  if (err) return console.error(err);
  fluffy.speak();
});
  • 随着时间的过去,我们想展示我们曾经见过的所有 kittens ,通过Kitten model 便可以进入到所有的 kitten 中去。
Kitten.find(function (err, kittens) {
  if (err) return console.error(err);
  console.log(kittens)
})
  • 我们刚刚只是在控制台上打印了所有 kitten .如果想要过滤一些 kittens 的名字, mongoose 支持 mongodbs 丰富的查询语法
    Kitten.find({ name: /^Fluff/ }, callback)
  • 这里展示对所有 document 的一个 name 属性的搜索并且返回相关的结果到回调中去。
    Congratulations
    到这里我们的 quick start 就结束了。我们创建了一个 schema ,增加了个人的 document 方法,并且使用 mongoose 保存查询了在 mongodb 中的 kittens .前往guide 和api 文档了解更多!

Schemas

  • 如何你还没有开始项目,请花一分钟的时间阅读上文的‘开始’以便对 mongoose 如何工作有一个大概的了解。如果2.x迁移到3.x,请花点时间阅读一下 迁移指导
定义你的 schema
  • mongoose 的开始源于一个 Schema. 每一个 schema 连接到 Mongodb 并且定义其
    documents 模型
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 },
  hidden: Boolean,
  meta: {
    votes: Number,
    favs:  Number
  }
});

如果你之后想增加额外的 keys ,请使用 schema#add 方法

我们 blogSchema 中的每个 key 在 document 中定义了一个转化为与其相关的 SchemaType 的方法。例如。我们定义了一个被转化为字符串 SchemaType 的‘title’以及一个被转化为 Data SchemaType 的 'date'。keys 也可以为包含更多内部key的对象,如例子中的 meta 。

SchemaTypes 有:

  • String
  • Number
  • Date
  • Buffer
  • Boolean
  • Mixed
  • ObjectId
  • Array
    Schemas 不仅定义了你 document 的结构和属性,而且定义了 document 的实例方法,静态 model 方法,复合索引以及被称为中间件的生命周期钩子函数。
创建一个 model

在使用schema 之前,我们需要将 blogSchema 转化成一个我们可以操作的 model,我们通过 mongoose.model(modelName, schema)转化它

var Blog = mongoose.model('Blog', blogSchema);
// ready to go!
实例方法

相关文章

  • mongoose中文文档

    转载自:https://cn.mongoosedoc.top/docs/guide.html

  • mongoose中文文档

    本人编译官方教程部分内容,括号中内容为个人见解,转载请注明出处,谢谢 开始 首先得确认你已经安装了 Mongodb...

  • Node-Mongoose

    Mongoose 连接 Mongodb 数据库引擎 mongoose文档 查看npm文档Mongoose 官网查看...

  • MongoDB快速入门教程 (4.2)

    4.2.Mongoose实现增删查改 中文文档地址: https://cn.mongoosedoc.top/doc...

  • mongoose 拾遗

    mongoose 文档中提到: When your application starts up, Mongoose...

  • Mongoose js 5.0 中文文档

    完整文档地址https://cn.mongoosedoc.top/docs/guide.html 快速上手 请先安...

  • Mongoose-使用node.js操作数据库

    Mongoose就是对象文档模型(ODM) 1.Mongoose的对象 Mongoose有3个对象:Schema(...

  • Mongoose

    Mongoose中文网 1、需求分析 Mongoose是什么? Mongoose优势! 2、基本操作 3. 增删改...

  • mongoose 使用

    mongoose 使用 Mongoose 基础使用 Connect 链接数据库 定义文档模型, Schema 和 ...

  • Express框架

    Express在线文档[http://www.expressjs.com.cn/]mongoose在线文档[htt...

网友评论

    本文标题:mongoose中文文档

    本文链接:https://www.haomeiwen.com/subject/xnvosxtx.html