首先,先安装MongoDB的Node.js版原生驱动:
$npm install mongodb@1.3.23
不要忘了包含package.json文件的依赖关系:
{
"name": "node-example",
"version": "0.0.1",
"dependencies: {
"mongodb": "1.3.23",
...
},
"engines": {
"node": ">=0.6.x"
}
}
一、Node.js脚本连接本地MongoDB
1.声明依赖关系
2.定义数据库主机和端口
3.建立数据库连接
4.创建数据库文档
5.输出一个新创建的文档/对象
========================华丽丽的分割线============================================
文件mongo-native-insert.js如下:
var mongo = require('mongodb'),
dbHost = '127.0.0.1',
dbPort = 27017;
var Db = mongo.Db;
var Connection = mongo.Connection;
var Server = mongo.Server;
var db = new Db ('local', new Server(dbHost, dbPort), {safe:true});
db.open(function(error, dbConnection){
if (error) {
console.error(error);
process.exit(1);
}
console.log('db state: ', db._state);
item = {
name: '深情小建'
}
dbConnection.collection('messages').insert(item, function(error, item){
if (error) {
console.error(error);
process.exit(1);
}
console.info("created/inserted: ", item);
db.close();
process.exit(0);
});
});
========================华丽丽的分割线============================================
1.获得message集合中的一条数据
2.输出出来
3.给hi值添加一个属性文字
4.将这条数据保存回message集合中
安装完后我们的mongo-native.js中就包括了MongoDB库:
var util = require('mongodb');
var mongo = require('mongodb');
这是一种和MongoDB服务建立连接的方法,db变量在指定的主机和端口上保持了对数据库的引用:
var mongo = require('mongodb'),
dbHost = '127.0.0.1',
dbPort = 27017;
var Db = mongo.Db;
var Connection = mongo.Connection;
var Server = mongo.Server;
var db = new Db ('local', new Server(dbHost, dbPort), {safe:true});
打开一个连接输入如下命令:
db.open(function(error, dbConnection){
// 执行数据库相关操作
// console.log(util.inspect(db));
console.log(db._state);
db.close();
});
检查完后再退出是一个很好的习惯:
db.open(function(error, dbConnection){
if (error) {
console.error(error);
process.exit(1);
}
console.log('db state: ', db._state);
现在可以进行刚提到的第一步—从message集合中取出一条数据。本文档是item变量中的:
dbConnection.collection('messages').findOne({}, function(error, item){
if (error) {
console.error(error);
process.exit(1);
}
第二步,输出值,如下:
console.info('findOne: ', item);
如你所见,控制台上的方法和Node.js没有多大不同。
让我们继续看看剩下的两步:添加新的属性和保存文档。
item.text = 'hi';
var id = item._id.toString(); // 可以把ID存成字符串
console.info('before saving: ', item);
dbConnection.collection('messages').save(item, function(error, item){
console.info('save: ', item);
为了复查保存的对象,我们使用之前find方法保存的ObjectID(id变量)。这个方法返回一个指针,因此我们用toArray()方法引出标准的JavaScript数组:
dbConnection.collection('messages').find({_id: new mongo.ObjectID(id)}).toArray(function(error, items){
console.info('find: ', items);
db.close();
process.exit(0);
});
});
})
});