nodejs操作mongodb資料庫(mongodb)
阿新 • • 發佈:2018-12-24
準備
- 通過npm命令安裝mongodb
- 安裝mongodb資料庫,這裡不詳細介紹了,網上一堆
關於版本
- [email protected]
- nodejs v4.6.0
- MongoDB資料庫 3.2版本
CRUD操作
在此之前應對Mongodb資料庫有所瞭解,知道它的一些增刪查改命令。
1.增加
var MongoClient = require("mongodb").MongoClient;
var DB_URL = "mongodb://localhost:27017/chm";
function insertData(db)
{
var devices = db.collection('vip' );
var data = {"name":"node","age":22,"addr":"nb","addTime":new Date()};
devices.insert(data,function(error, result){
if(error)
{
console.log('Error:'+ error);
}else{
console.log(result.result.n);
}
db.close();
});
}
MongoClient.connect(DB_URL, function (error, db){
console.log('連線成功!');
insertData(db);
});
2.查詢
var mongodb = require('mongodb')
var MongoClient = require('mongodb').MongoClient;
var DB_CONN_STR = 'mongodb://localhost:27017/chm';
var selectData = function(db, callback) {
//連線到表
var collection = db.collection('vip');
//查詢資料
var whereStr = {"name":'node'};
collection.find(whereStr,function(error, cursor){
cursor.each(function(error,doc){
if(doc){
//console.log(doc);
if (doc.addTime) {
console.log("addTime: "+doc.addTime);
}
}
});
});
}
MongoClient.connect(DB_CONN_STR, function(err, db) {
console.log("連線成功!");
selectData(db, function(result) {
console.log(result);
db.close();
});
});
3.更新
var MongoClient = require("mongodb").MongoClient;
var DB_URL = "mongodb://localhost:27017/chm";
MongoClient.connect(DB_URL, function(error, db){
console.log("連線成功!");
updateData(db);
});
function updateData(db)
{
var devices = db.collection('vip');
var whereData = {"name":"node"}
var updateDat = {$set: {"age":26}}; //如果不用$set,替換整條資料
devices.update(whereData, updateDat, function(error, result){
if (error) {
console.log('Error:'+ error);
}else{
console.log(result);
}
db.close();
});
}
4.刪除
var MongoClient = require('mongodb').MongoClient;
var DB_URL = "mongodb://localhost:27017/chm";
MongoClient.connect(DB_URL, function(error, db){
console.log("連線成功");
deleteData(db);
});
function deleteData(db)
{
var devices = db.collection('vip');
var data = {"name":"node"};
devices.remove(data, function(error, result){
if (error) {
console.log('Error:'+ error);
}else{
console.log(result.result.n);
}
db.close();
})
}
儲存過程
在mongodb中建立儲存過程
所有儲存過程都存放在db.system.js中,通過db.eval(“儲存過程ID()”);呼叫儲存過程。
在程式碼中呼叫:
var MongoClient = require("mongodb").MongoClient;
var DB_URL = "mongodb://localhost:27017/chm";
MongoClient.connect(DB_URL, function(error,db){
console.log("連線成功!");
callProcess(db)
});
function callProcess(db)
{
db.eval("get_vip_count()",function(error, result){
if (error) {
console.log(error);
}else{
console.log("count:"+result);
}
db.close();
});
}
下篇介紹如何使用mongoose操作mongodb資料庫。