介绍
在本教程中,我们将展示如何使用Node.js连接到VPS中的MongoDB数据库,并做一些基本的数据操作。
以下是将使用的以下软件组件:
- Ubuntu 12.04 x32 VPS
- MongoDB v2.4.6
- Node.js v0.10.20
- MongoDB Node.js驱动程序
MongoDB
“MongoDB是一个开源的面向文档的数据库,提供高性能,高可用性和轻松的可扩展性”
如果你不熟悉的MongoDB或者不安装它,请看看这个教程第一。
让我们验证MongoDB进程是否正在运行:
ps -ef | grep mongo
输出应该看起来像这样:
mongodb 1307 1 0 02:27 ? 00:00:01 /usr/bin/mongod --config /etc/mongodb.conf
如果它没有运行,请从MongoDB bin目录中发出以下命令:
mongod
有一个控制台客户端自带的MongoDB。 要启动它,请发出以下命令:
mongo
您将看到类似的输出(您可以忽略警告):
MongoDB shell version: 2.4.4
connecting to: test
Server has startup warnings:
Mon Oct 7 20:40:35.209 [initandlisten]
Mon Oct 7 20:40:35.209 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
>
运行此命令以列出现有数据库:
show dbs
运行此命令以显示所选的数据库:
db
运行以下命令切换到“测试”数据库并显示其包含的集合:
use test
show collections
下面是可以在控制台客户端中使用的命令列表,您可以通过键入“help”获取完整的命令列表:
show dbs #show database names
show collections #show collections in current database
show users # show users in current database
show profile # show most recent system.profile entries with time >= 1ms
show logs # show the accessible logger names
show log [name] # prints out the last segment of log in memory, 'global' is default
use <db_name> # set current database
db.foo.find() # list objects in collection foo
db.foo.find( { a : 1 } ) #list objects in foo where a == 1
it #result of the last line evaluated; use to further iterate
exit #quit the mongo shell
Node.js
“Node.js是一个建立在Chrome的JavaScript运行时上的平台,用于轻松构建快速,可扩展的网络应用程序。Node.js使用事件驱动的非阻塞I / O模型,使其轻量级和高效,非常适合数据密集型实际在分布式设备上运行的应用程序。
如果您没有安装此版本,请先花时间按照本教程中的说明进行操作。
让我们验证Node.js进程是否正在运行:
node -v
您应该看到Node.js版本作为命令输出。
MongoDB Node.js驱动程序
这个驱动是官方支持的MongoDB的Node.js驱动。 它是用纯JavaScript编写的,并为MongoDB提供了一个本地异步Node.js接口。
使用节点程序包管理器“npm”安装驱动程序:
npm install mongodb
连接到MongoDB和执行数据操作
现在是编写将允许您的Node.js应用程序连接到MongoDB的代码的时候了。 将涵盖三个操作:连接,写入和从数据库读取。
为了能够执行你的代码,我们需要创建一个新文件,我们称之为'app.js'。
一旦您拥有该文件,请使用首选编辑器添加以下代码:
var MongoClient = require('mongodb').MongoClient
, format = require('util').format;
MongoClient.connect('mongodb://127.0.0.1:27017/test', function (err, db) {
if (err) {
throw err;
} else {
console.log("successfully connected to the database");
}
db.close();
});
通过键入以下命令执行app.js文件:
node app.js
您应该在输出中看到以下字符串:成功连接到数据库。
现在让我们添加一些逻辑,将东西插入一个名为“test_insert”的新集合:
var MongoClient = require('mongodb').MongoClient
, format = require('util').format;
MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) {
if(err) throw err;
var collection = db.collection('test_insert');
collection.insert({a:2}, function(err, docs) {
collection.count(function(err, count) {
console.log(format("count = %s", count));
db.close();
});
});
});
添加另一个代码块,验证数据是否将其传送到数据库:
var MongoClient = require('mongodb').MongoClient
, format = require('util').format;
MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) {
if(err) throw err;
var collection = db.collection('test_insert');
collection.insert({a:2}, function(err, docs) {
collection.count(function(err, count) {
console.log(format("count = %s", count));
});
});
// Locate all the entries using find
collection.find().toArray(function(err, results) {
console.dir(results);
// Let's close the db
db.close();
});
});
恭喜! 现在,您可以使用Node.js应用程序在VPS中从MongoDB数据库连接,插入和读取数据!
资源
- http://www.nodejs.org/
- http://docs.mongodb.org/ecosystem/drivers/node-js/
- http://www.mongodb.org/
- https://npmjs.org/