开始之前,没什么比过一遍官方文档更有必要的了:http://mongoosejs.com/
mongoose 是啥?有啥用?
mongoose 是操作 MongoDB 的一个对象模型库;它封装了MongoDB对文档操作的常用处理方法(增删改查),让 NodeJS 操作 Mongodb 数据库变得快捷灵活。
本文所用到的完整代码:源码
安装 mongoose
新建目录 s4_mongoose 和 test.js 文件:
|
|
初始化目录生成 package.json 并安装 mongoose:
|
|
连接数据库
编辑 test.js :
|
|
接着先打开一个 iTerm2 终端,开启 mongodb 服务:
|
|
再打开另一个 iTerm2 终端,运行 test.js:
|
|
Schema/Model/Entity
没有比文档更详细的了:http://mongoosejs.com/docs/guide.html
- Schema:数据库集合的结构对象。
- Model :由Schema构造而成,可操作数据库。
- Entity:由Model创建的实体,可操作数据库。
看完文档后,再看看下面一段代码配合理解一下:
|
|
model 数据插入
在前面的数据库连接成功的前提下,我们在数据库 test 下新建一个集合 test1
、并往里面插入保存一组数据:
|
|
find 数据查询
mongoose 提供了find、findOne、和findById方法用于文档查询。
基本语法:
|
|
Conditions: 查询条件
fields: 返回的字段
options: 游标(sort,limit)
callback: 回调函数,参数doc为查询出来的结果
条件查询的基础:$lt
(小于<)$lte
(小于等于<=)$gt
(大于>)$gte
(大于等于>=)$ne
(不等于,不包含!=)$in
(包含)$or
(查询多个键值的任意给定值)$exists
(判断某些属性是否存在)$all
(全部)
具体的一些实例,代码里已有详细注释:
|
|
update 数据更新
基本使用:model.update(查询条件,更新对象,callback);
|
|
remove 数据删除
基本使用:model.remove(查询条件,callback);
|
|
robomongo mongodb可视化工具
安装 mongodb 可视化工具 robomongo
在 iTerm2 开启本地mongodb后(执行mongod
),打开 robomongo,新建 connection 即可连上本地的 mongodb 数据库。