安装驱动

本教程使用了淘宝定制的 cnpm 命令进行安装:

$ cnpm install mongodb

接下来我们来实现增删改查功能。


创建数据库

要在 MongoDB 中创建一个数据库,首先我们需要创建一个 MongoClient 对象,然后配置好指定的 URL 和 端口号。 如果数据库不存在,MongoDB 将创建数据库并建立连接。

创建连接

1 var MongoClient = require('mongodb').MongoClient;
2 var url = "mongodb://localhost:27017/mydb";
3  
4 MongoClient.connect(url, function(err, db) {
5   if (err) throw err;
6   console.log("数据库已创建!");
7   db.close();
8 });

 


创建集合

我们可以使用 createCollection() 方法来创建集合:

创建集合

 1 var MongoClient = require('mongodb').MongoClient;
 2 var url = "mongodb://localhost:27017/mydb";
 3  
 4 MongoClient.connect(url, function(err, db) {
 5   if (err) throw err;
 6   db.createCollection("runoob", function(err, res) {
 7     if (err) throw err;
 8     console.log("创建集合!");
 9     db.close();
10   });
11 });

 


数据库操作( CURD )

与 MySQL 不同的是 MongoDB 会自动创建数据库和集合,所以使用前我们不需要手动去创建。

插入数据

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

插入数据

 1 var MongoClient = require('mongodb').MongoClient;
 2 var DB_CONN_STR = 'mongodb://localhost:27017/runoob'; # 数据库为 runoob
 3  
 4 var insertData = function(db, callback) {  
 5     //连接到表 site
 6     var collection = db.collection('site');
 7     //插入数据
 8     var data = [{"name":"菜鸟教程","url":"www.runoob.com"},{"name":"菜鸟工具","url":"c.runoob.com"}];
 9     collection.insert(data, function(err, result) { 
10         if(err)
11         {
12             console.log('Error:'+ err);
13             return;
14         }     
15         callback(result);
16     });
17 }
18  
19 MongoClient.connect(DB_CONN_STR, function(err, db) {
20     console.log("连接成功!");
21     insertData(db, function(result) {
22         console.log(result);
23         db.close();
24     });
25 });

 

执行以下命令输出就结果为:
$ 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 为 "菜鸟教程" 的实例:

查询数据

 1 var MongoClient = require('mongodb').MongoClient;
 2 var DB_CONN_STR = 'mongodb://localhost:27017/runoob';    
 3  
 4 var selectData = function(db, callback) {  
 5   //连接到表  
 6   var collection = db.collection('site');
 7   //查询数据
 8   var whereStr = {"name":'菜鸟教程'};
 9   collection.find(whereStr).toArray(function(err, result) {
10     if(err)
11     {
12       console.log('Error:'+ err);
13       return;
14     }     
15     callback(result);
16   });
17 }
18  
19 MongoClient.connect(DB_CONN_STR, function(err, db) {
20   console.log("连接成功!");
21   selectData(db, function(result) {
22     console.log(result);
23     db.close();
24   });
25 });

 

执行以下命令输出就结果为:
连接成功!
[ { _id: 58c25f300cd56e0d7ddfc0c8,
    name: '菜鸟教程',
    url: 'www.runoob.com' } ]

更新数据

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

更新数据

 1 var MongoClient = require('mongodb').MongoClient;
 2 var DB_CONN_STR = 'mongodb://localhost:27017/runoob';    
 3  
 4 var updateData = function(db, callback) {  
 5     //连接到表  
 6     var collection = db.collection('site');
 7     //更新数据
 8     var whereStr = {"name":'菜鸟教程'};
 9     var updateStr = {$set: { "url" : "https://www.runoob.com" }};
10     collection.update(whereStr,updateStr, function(err, result) {
11         if(err)
12         {
13             console.log('Error:'+ err);
14             return;
15         }     
16         callback(result);
17     });
18 }
19  
20 MongoClient.connect(DB_CONN_STR, function(err, db) {
21     console.log("连接成功!");
22     updateData(db, function(result) {
23         console.log(result);
24         db.close();
25     });
26 });

 

执行成功后,进入 mongo 管理工具查看数据已修改:
> db.site.find()
{ "_id" : ObjectId("58c25f300cd56e0d7ddfc0c8"), "name" : "菜鸟教程", "url" : "https://www.runoob.com" }
{ "_id" : ObjectId("58c25f300cd56e0d7ddfc0c9"), "name" : "菜鸟工具", "url" : "c.runoob.com" }

删除数据

以下实例将 name 为 "菜鸟工具" 的数据删除 :

删除数据

 1 var MongoClient = require('mongodb').MongoClient;
 2 var DB_CONN_STR = 'mongodb://localhost:27017/runoob';    
 3  
 4 var delData = function(db, callback) {  
 5   //连接到表  
 6   var collection = db.collection('site');
 7   //删除数据
 8   var whereStr = {"name":'菜鸟工具'};
 9   collection.remove(whereStr, function(err, result) {
10     if(err)
11     {
12       console.log('Error:'+ err);
13       return;
14     }     
15     callback(result);
16   });
17 }
18  
19 MongoClient.connect(DB_CONN_STR, function(err, db) {
20   console.log("连接成功!");
21   delData(db, function(result) {
22     console.log(result);
23     db.close();
24   });
25 });

 

执行成功后,进入 mongo 管理工具查看数据已删除:
> db.site.find()
{ "_id" : ObjectId("58c25f300cd56e0d7ddfc0c8"), "name" : "菜鸟教程", "url" : "https://www.runoob.com" }
>
posted on 2017-12-20 15:18  Sharpest  阅读(233)  评论(0编辑  收藏  举报