Pure JS (4.1): 使用 MongoDB 进行数据存储和管理
Pure JS (4.1): 使用 MongoDB 进行数据存储和管理
MongoDB 的一大特性就是 “JavaScript Friendly”,“Scheme Free” 的主张天生就是与 JavaScript 的开发理念相契合的。
它允许我们通过 eval 进行数据的初始化,以及在查询中使用 JS 对象作为查询条件,并且查询结果也可以很容易地转为 JS 对象或数组。
最近三篇文章将重点介绍如何在服务器端用 JS 与 MongoDB 进行交互;
我将这些操作封装在 pure.db 中,可能封装得并不完善,但可以很容易地进行修改和扩展 。
第一篇文章通过测试案例来了解 pure.db 的用法;
第二篇文章说明在实际的 Web 应用中如何使用它;
第三篇文章探讨 pure.db 的实现细节。
运行测试案例
首先,我们需要到这里下载 MongoDB:http://www.mongodb.org/downloads
通过命令行运行 mongod 和 mongo(默认情况下需要先在根目录创建文件夹 \data\db )。
mongod 是一个接受命令的守护进程,而 mongo 是一个与 mongod 交互的命令行 shell 工具。
然后下载附件,这是一个 eclipse 工程(就是我们之前一直使用的 PureJS 工程),添加到eclipse中,运行 test/purejs/test/DBTest.java。(鼠标右键 -> Run As -> JUnit Test 或 Alt + Shift + X, T)
正常情况下,应该看到像这样的绿条:
也就是说每个测试方法实际上就是运行一个 js 文件,我们打开文件夹 scripts/test/db ,所有用于测试的 js 文件都在这里,总共有 25 个测试文件以及一个初始化脚本 before.js ,接下来我们将选择其中的重点进行说明。
通过 eval 进行数据的初始化
数据初始化的脚本 before.js 调用 pure.db.eval(func) 进行数据的初始化,传入一个函数,函数中的代码将直接在 MongoDB 运行,可以在这里查看原生的 MongoDB js 的写法:
http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mapping+Chart
before.js 首先建立了一个测试框架:
users.remove({ name: 'user1' });