您的位置:首页 > 数据库 > Mongodb

第5章-MongoDB、Mongoskin特性-5.4.Node.js版原生MongoDB驱动示例

2017-06-04 23:49 651 查看
首先,先安装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);
});
});
})
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mongodb node.js