使用Mongoose

Mongoose提供了一个直观的、基于模式(schema)的解决方案,可以为你的应用数据使用内置的类型转换、验证、查询和业务逻辑来建模。本文简述在Node.js中使用Mongoose连接MongoDB的方法。

1. 启动MongoDB

系统为CentOS 6.6。详细的mongodb server安装方法请参考:Mongo – Class One
首先添加repo,通过yum来安装。

在启动脚本中,已经设置了指定mongod用户来启动mongod,相关的数据目录也修改了权限。可以直接通过mongod来启动

2. 使用mongoose

内网服务器设置了代理:
npm install mongoose
注意,如果没有安装gcc, gcc-c++, make等编译器和构建工具,就会导致依赖包bson的native library不能正确编译,并在加载mongoose或mongodb时报错:node.js – Failed to load c++ bson extension, using pure JS version – Stack Overflow。

检查test数据库,cats集合已经被自动创建。

可以对连接设置一个回调函数,在连接成功(open)或发生错误时执行。

3. Mongoose的模式

在Mongoose中,所有都衍生于Schema。Schema中可以定义:

下面给出一个定义Kittens的参考。

该schema中定义了一个属性name,接下来把该schema编译为model。

model是我们建立文档的类。在这个例子中,每一个文档会是我们定义的带着属性的kitten对象。

现在kitten就可以喵喵叫了,我们看一下如何对该对象添加一个speak功能。Javascript中?:表达式和C语言语法类似。

greeting函数添加到通过编译到Model原型的schema的methods属性中,每一个文档实例都可以调用该函数

但是直到现在为止,我们并没有保存任何数据到MongoDB中,任何文档都需要调用它的save方法才能将它保存到数据库中。第一个参数是一个回调函数,当发生错误时会调用它。

下面找到所有Kitten model下的文档。

参考:
Mongoose Getting Started

Posted in Dev, JavaScript, NoSQL.