Mongoose -- quick start

来源:互联网 发布:相册制作软件 编辑:程序博客网 时间:2024/06/11 05:16

使用mongoose之前,首先要确保你的电脑安装了MongoDB和Node。

安装MongoDB的教程可见:
http://www.jianshu.com/p/1bb663918cfd

然后,我们可以用npm指令来安装mongoose:

$ npm install mongoose

接下来,我们就可以使用mongoose来连接MongoDB了,连接方法如下:

// getting-started.jsvar mongoose = require('mongoose');mongoose.connect('mongodb://localhost/test');

下面,可以为本次的连接定义两个事件监听的回调函数,当连接成功open和出错error的时候,会分别调用。

var db = mongoose.connection;db.on('error', console.error.bind(console, 'connection error:'));db.once('open', function() {  // we're connected!});

连接成功后,我们就可以对数据库进行操作。我们默认下面的代码是写在连接成功的回调函数中。

规则1: Schema

在Mongoose中,Schema是所有数据的框架和源头。我们必须首先创建Schema。

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

上面这样定义的Schema有一个name属性,类型为String。

下一步,利用Schema,可以生成模型Model。

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

模型相当于是一个类,我们使用这个”类”来创建实例,也就是具体的数据对象。

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

如果想要给Kitten类的实例文档添加方法,那么需要在kittySchema上定义:

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

下面,新建的kittens就可以拥有speak方法了:

var fluffy = new Kitten({ name: 'fluffy' });fluffy.speak(); // "Meow name is fluffy"

目前为止,我们还没有保存任何东西到MongoDB中。每个文档(实例)都可以被保存到数据库中,只需要使用save方法即可。

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

之后,我们可以通过Model来搜索我们保存的所有kittens.

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

当然也可以使用filter来寻找:

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

这样,我们就可以找到所有名字以Fluff开头的kittens。在callback函数中,我们可以查看它们。