跳转至

入门

入门使用

首先安装MongoDBNode.js

接下来使用npm安装Mongoose:

Bash
    $ npm install mongoose

做个小猫模型,先连接本地数据库test.

JavaScript
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');

添加错误通知,以及连接成功方法:

JavaScript
    var db = mongoose.connection;
    db.on('error', console.error.bind(console, 'connection error:'));
    db.once('open', function() {

    });

一旦我们的连接打开,我们的回调将被调用,为简洁起见,我们假设以下所有代码都位于此回调中。

定义小猫模式.

JavaScript
    var kittySchema = mongoose.Schema({
        name: String
    });

我们有定义了一个属性 name, 类型 String. 下一步是将我们的模式编译成一个模型.

JavaScript
    var Kitten = mongoose.model('Kitten', kittySchema);

模型是我们构造文档的类。 在这种情况下, 每个文档将成为一个小猫,其特性和行为在我们的模式中声明。 让我们创建一个小猫文档,代表我们刚刚在外面的人行道上遇到的小家伙:

JavaScript
    var silence = new Kitten({ name: 'Silence' });
    console.log(silence.name);

小猫可以喵喵叫,那么让我们来看看如何在我们的文档中添加“speak”功能:

JavaScript
    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);

添加到模式的“方法”属性的函数被编译到“模型”原型中,并显示在每个文档实例上:

JavaScript
    var fluffy = new Kitten({ name: 'fluffy' });
    fluffy.speak();

我们有说话的小猫!但是我们还没有保存任何东西给MongoDB。 每个文档可以通过调用save方法保存到数据库中。 回调的第一个参数将是一个错误,如果有错误将显示出来。

JavaScript
    fluffy.save(function (err, fluffy) {
    if (err) return console.error(err);
    fluffy.speak();
    });

说时间过去了,我们想要显示我们看到的所有小猫。 我们可以通过我们的小猫模型访问所有的小猫文档。

JavaScript
    Kitten.find(function (err, kittens) {
      if (err) return console.error(err);
      console.log(kittens);
    })

我们只把我们的数据库中的所有小猫记录到控制台。 如果我们想按名字过滤我们的小猫,Mongoose支持MongoDB丰富的查询语法。

JavaScript
    Kitten.find({ name: /^fluff/ }, callback);

这将搜索名称属性以“Fluff”开头的所有文档,并将结果作为小猫数组返回给回调。

祝贺

这是我们快速启动的结束。,我们创建了一个模式,添加了一个自定义的文档方法,使用Mongoose在MongoDB中保存并查询了小猫。,请转到guideAPI文档了解更多信息。