通过node.js使用mongodb

在之前示例的基础上( 解析web网页并保存页面中的图片),我们要将文档对象TankBook保存到数据库中。

下面先讲一下mongodb的基本操作,再结合使用nodejs代码。

数据库简单操作

准备

数据库选用的是mongodb,如何安装可参见 怎样在ubuntu 11.10下安装mongodb 2.0。如果要在本地安装,可在 这里下载对应平台的安装包。

插入记录

安装mongodb后,可在test数据库中创建表和记录。mongodb是面向文档的数据库,传统数据库中记录,等同于它的文档,表等同于集合。

我们要创建一个文档,就是把 解析web网页并保存页面中的图片示例中的TankBook对象作为文档保存起来。可在命令行里这样实现:

db.books.insert({‘title’:'坦克’,'coverImageUrl’:'/Iraq-m1_abrams.jpg/300px-Iraq-m1_abrams.jpg’})

这里books集合,当系统发现不存在的时候会自动创建。

如果不使用命令行,我建议使用mongohub。应该也有windows版本,我使用Mac版本。插入操作的截图:

通过node.js使用mongodb_第1张图片

查询记录

之后,我们可以考虑如何查出内容,命令行:

db.books.find()

这将打印出全部的文档,类似于SQL的:

select * from books;

如果使用mongohub:

通过node.js使用mongodb_第2张图片

使用nodejs

准备

nodejs是个强大的平台,有基本功能,而且可以挂很多模块。我们现在需要和mongodb连接的驱动,就类似比如mysql的java驱动一样。

安装:

npm install mongod

这个驱动的全称是node mongodb native,网址 在这里。nodejs有好几个mongodb的第三方驱动。和jdbc不一样,没有标准。所以需要到驱动的网站上去了解学习怎么使用它访问mongodb。

代码

代码分两部分,加载mongodb模块:

var $ = require(‘jquery’),
fs = require(‘fs’),
mongodb = require(‘mongodb’),
http = require(‘http’);

然后是使用它插入或者查看文档集合:

function saveToDb() {
var server = new mongodb.Server(‘marshal.easymorse.com’, 27017),
connect = new mongodb.Db(‘test’, server);

connect.open(function (err, db) {
db.collection(‘books’, function (err, collection) {
collection.find(function (err, cursor) {
cursor.each(function (err, doc) {
if (doc) {
console.log(‘doc.title:’ + doc.title);
}
});
});

// collection.insert(tankBook);
});
});

其中,第二段是游标遍历文档集合。第三段,被屏蔽掉的,是插入文档集合。

完整的源代码,见: https://github.com/MarshalW/TankManual/blob/v0.3/app.js

 

 

你可能感兴趣的:(JavaScript,mongodb,node.js,计算机技术)