昨天介绍了一下MongoDB在shell下的正删改查,今天来讲一下在nodejs中如何连接数据库以及数据的插入!
看一下实例代码
var express = require("express");
var app = express();
var MongoClient = require('mongodb').MongoClient;
app.get("/",function(req,res){
//url就是数据库的地址。/表示数据库
//假如数据库不存在,没有关系,程序会帮你自动创建一个数据库
var url = 'mongodb://localhost:27017/haha';
//连接数据库
MongoClient.connect(url, function(err, db) {
//回调函数表示连接成功做的事情,db参数就是连接上的数据库实体
if(err){
console.log("数据库连接失败");
return;
}
console.log("数据库连接成功");
//插入数据,集合如果不存在,也没有关系,程序会帮你创建
db.collection('student').insertOne({
"name" : "哈哈",
"age" : parseInt(Math.random() * 100 + 10)
}, function(err, result) {
if(err){
console.log("插入失败");
return;
}
//插入之后做的事情,result表示插入结果。
//console.log(result);
res.send(result);
db.close();
});
});
});
app.listen(3000);
在插入收据时候发现提示db.collection不是一个函数,解决问题:MongoDB的版本太高,这个写法是MongoDB2.x的版本写法!
接下来看一下MongoDB3.x以及更高版本插入数据(测试为4.x环境)
var express=require("express")
var app=express();
var MongoClient = require('mongodb').MongoClient;
app.get("/",function(req,res){
//连接数据库,入库哦数据库不存在则自动创建,存在则使用该数据库
var url = 'mongodb://localhost:27017/test';
MongoClient.connect(url, function(err, client) {
if(err){
console.log("数据库连接失败");
return;
}
console.log("数据库连接成功");
//插入数据,集合不存在自动创建
//新版本数据库插入方式,获取插入的数据库
var db=client.db("test");
db.collection("student").insertMany([
{"name":"小明"+parseInt(Math.random()*20),"age":+parseInt(Math.random()*50+10)},
{"name":"小王"+parseInt(Math.random()*20),"age":+parseInt(Math.random()*50+10)},
{"name":"小李"+parseInt(Math.random()*20),"age":+parseInt(Math.random()*50+10)}
],function(err,result){
if (err){
res.send("数据插入失败");
return;
}
// db.close();
res.send("数据插入成功!");
})
});
})
app.listen(3000)
不同之处,在3.x以后版本中db要指定是在哪个数据库中,然后才可以进行数据插入
var db=client.db("test");//指定操作的数据库为test
插入单挑数据(insertOne),多条数据(insertMany)方法实现插入!