Mongoose -- quick start

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

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

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

$ npm install mongoose

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

// getting-started.js
var 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函数中,我们可以查看它们。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值