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函数中,我们可以查看它们。
阅读全文
0 0
- Mongoose -- quick start
- Mongoose的官方quick start教程
- Quick Start
- Quick Start
- WAP Push Quick Start
- Purify Quick Start
- [Avalon] Quick Start
- CodeSmith Quick Start Guide
- JavaMail quick start
- Ibatisnet Quick Start
- Ibatisnet Quick Start
- KGDB Quick Start
- dom4j Quick start
- Resin Installation Quick Start
- iBatisnet Quick Start(转)
- OpenLDAP Quick Start Guide
- squid quick start
- DOJO Quick Start
- (8)java代码实现回复image类型的消息
- CMake常用命令
- 文件下载java类
- HDU 3691 Nubulsa Expo(全局最小割)
- 理解动态代理及动态代理在RPC中的应用
- Mongoose -- quick start
- Vue2.0做的项目在IE11下面打开一片空白?
- C语言中常用计时方法总结
- 博客收藏
- 01设计原则--七大设计原则
- 对于Javascript 执行上下文的理解
- 数据结构解析与归纳
- ssm框架mysql数据库报错,jdbc.properties数据库配置问题
- Android程序员学WEB前端(9)-CSS(4)-商城首页Demo-Sublime