Node.js入门(6)之Node.js与MongoDB简单交互
参考 http://blog.csdn.net/a1104258464/article/details/51025687
3.x.x版本的mongo插件有大改动,会报错,测试使用的是^2.2.33版本。
创建工程
cd
到目标目录下express mongo -e
。
安装MongoDB模块
npm install mongodb -save
- npm install 与 npm install -save的区别是:后者安装的同时,将信息写入package.json中项目路径中,如果有package.json文件时,直接使用npm install方法就可以根据dependencies配置安装所有的依赖包,这样代码提交到github时,就不用提交node_modules这个文件夹了。
连接MongoDB
声明MongoClient实例:
var MongoClient = require('mongodb').MongoClient;
声明数据库的URL。
MongoDB连接URL格式为:
mongodb://用户:密码@地址:端口/数据库
若无密码则省略“用户:密码@”。
例:var url = "mongodb://localhost:27017/test";
连接数据库
MongoClient.connect(url, function(err, db) {
console.log("数据库连接成功");
db.close();
});
后面的方法参数为回调函数。
对数据库的操作代码
操作格式:
MongoClient.connect(url, function(err, db) {
console.log("数据库连接成功");
insertDocument(db,function(){
db.close();
})
});
insertDocument为对数据库的操作方法。
插入操作
var insertDocument = function(db, callback) {
//连接表
var collection =db.collection('collectionName');
var user={
name:'Dandy',
age:18
}
//插入数据
collection.insertOne(user, function(err, result) {
if(err){
console.log(err)
}
console.log("插入成功");
callback();
});
};
查询操作
var findRestaurants = function(db, callback) {
var cursor = db.collection('collectionName').find( );
cursor.each(function(err, result) {
if (result != null) {
console.log(result);
} else {
callback();
}
});
};
or查询:
var findRestaurants = function(db, callback) {
var cursor =db.collection('first').find({$or :[{name:'Dandy'},{age:3}]});
cursor.each(function(err, result) {
if (result != null) {
console.log(result);
} else {
callback();
}
});
};
修改操作
var updateRestaurants = function(db, callback) {
var collection =db.collection('first');
collection.updateOne({name:"Dandy"},{$set: {age:13}}, function(err, results) {
console.log(results.result);
callback();
});
};
删除操作
var removeRestaurants = function(db, callback) {
var collection =db.collection('first');
collection.deleteMany(
{ name: "tom2" },
function(err, results) {
console.log(results.result);
callback();
}
);
};