Node.js 毗连 MongoDB
当前位置:以往代写 > 其他教程 >Node.js 毗连 MongoDB
2019-06-14

Node.js 毗连 MongoDB

Node.js 毗连 MongoDB

Node.js 毗连 MongoDB

MongoDB是一种文档导向数据库打点系统,由C++撰写而成。

本章节我们将为各人先容如何利用 Node.js 来毗连 MongoDB,并对数据库举办操纵。

假如你还没有 MongoDB 的根基常识,可以参考我们的教程:MongoDB 教程。

安装驱动

本教程利用了淘宝定制的 cnpm 呼吁举办安装:

$ cnpm install mongodb

接下来我们来实现增删改查成果。


数据库操纵( CURD )

与 MySQL 差异的是 MongoDB 会自动建设数据库和荟萃,所以利用前我们不需要手动去建设。

插入数据

以下实例我们毗连数据库 runoob 的 site 表,并插入两条数据:

插入数据

var MongoClient = require(‘mongodb’).MongoClient;
var DB_CONN_STR = ‘mongodb://localhost:27017/runoob’; # 数据库为 runoob
var insertData = function(db, callback) {
//毗连到表 site
var collection = db.collection(‘site’);
//插入数据
var data = [{"name":"菜鸟教程","url":"www.runoob.com"},{"name":"菜鸟东西","url":"c.runoob.com"}];
collection.insert(data, function(err, result) {
if(err)
{
console.log(‘Error:’+ err);
return;
}
callback(result);
});
}
MongoClient.connect(DB_CONN_STR, function(err, db) {
console.log("毗连乐成!");
insertData(db, function(result) {
console.log(result);
db.close();
});
});

执行以下呼吁输出就功效为:

$ node test.js
毗连乐成!
{ result: { ok: 1, n: 2 },
  ops: 
   [ { name: '菜鸟教程',
       url: 'www.runoob.com',
       _id: 58c25e13a08de70d3b9d4116 },
     { name: '菜鸟东西',
       url: 'c.runoob.com',
       _id: 58c25e13a08de70d3b9d4117 } ],
  insertedCount: 2,
  insertedIds: [ 58c25e13a08de70d3b9d4116, 58c25e13a08de70d3b9d4117 ] }

从输出功效来看,数据已插入乐成。

我们也可以打开 MongoDB 的客户端查察数据,如:

> show dbs
admin   0.000GB
local   0.000GB
runoob  0.000GB          # 自动建设了 runoob 数据库
> show tables
site                     # 自动建设了 site 荟萃(数据表)
> db.site.find()         # 查察荟萃中的数据
{ "_id" : ObjectId("58c25f300cd56e0d7ddfc0c8"), "name" : "菜鸟教程", "url" : "www.runoob.com" }
{ "_id" : ObjectId("58c25f300cd56e0d7ddfc0c9"), "name" : "菜鸟东西", "url" : "c.runoob.com" }
> 

查询数据

以下实例检索 name 为 “菜鸟教程” 的实例:

查询数据

var MongoClient = require(‘mongodb’).MongoClient;
var DB_CONN_STR = ‘mongodb://localhost:27017/runoob’;
var selectData = function(db, callback) {
//毗连到表
var collection = db.collection(‘site’);
//查询数据
var whereStr = {"name":’菜鸟教程’};
collection.find(whereStr).toArray(function(err, result) {
if(err)
{
console.log(‘Error:’+ err);
return;
}
callback(result);
});
}
MongoClient.connect(DB_CONN_STR, function(err, db) {
console.log("毗连乐成!");
selectData(db, function(result) {
console.log(result);
db.close();
});
});

执行以下呼吁输出就功效为:

毗连乐成!
[ { _id: 58c25f300cd56e0d7ddfc0c8,
    name: '菜鸟教程',
    url: 'www.runoob.com' } ]

更新数据

我们也可以对数据库的数据举办修改,以下实例将 name 为 “菜鸟教程” 的 url 改为 https://www.runoob.com:

更新数据

var MongoClient = require(‘mongodb’).MongoClient;
var DB_CONN_STR = ‘mongodb://localhost:27017/runoob’;
var updateData = function(db, callback) {
//毗连到表
var collection = db.collection(‘site’);
//更新数据
var whereStr = {"name":’菜鸟教程’};
var updateStr = {$set: { "url" : "https://www.runoob.com" }};
collection.update(whereStr,updateStr, function(err, result) {
if(err)
{
console.log(‘Error:’+ err);
return;
}
callback(result);
});
}
MongoClient.connect(DB_CONN_STR, function(err, db) {
console.log("毗连乐成!");
updateData(db, function(result) {
console.log(result);
db.close();
});
});

执行乐成后,进入 mongo 打点东西查察数据已修改:

> db.site.find()
{ "_id" : ObjectId("58c25f300cd56e0d7ddfc0c8"), "name" : "菜鸟教程", "url" : "https://www.runoob.com" }
{ "_id" : ObjectId("58c25f300cd56e0d7ddfc0c9"), "name" : "菜鸟东西", "url" : "c.runoob.com" }

删除数据

以下实例将 name 为 “菜鸟东西” 的数据删除 :

删除数据

var MongoClient = require(‘mongodb’).MongoClient;
var DB_CONN_STR = ‘mongodb://localhost:27017/runoob’;
var delData = function(db, callback) {
//毗连到表
var collection = db.collection(‘site’);
//删除数据
var whereStr = {"name":’菜鸟东西’};
collection.remove(whereStr, function(err, result) {
if(err)
{
console.log(‘Error:’+ err);
return;
}
callback(result);
});
}
MongoClient.connect(DB_CONN_STR, function(err, db) {
console.log("毗连乐成!");
delData(db, function(result) {
console.log(result);
db.close();
});
});

#p#分页标题#e#

执行乐成后,进入 mongo 打点东西查察数据已删除:

> db.site.find()
{ "_id" : ObjectId("58c25f300cd56e0d7ddfc0c8"), "name" : "菜鸟教程", "url" : "https://www.runoob.com" }
> 

    关键字:

在线提交作业