温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

使用Nodejs怎么连接mongodb数据库

发布时间:2021-03-30 16:32:16 来源:亿速云 阅读:477 作者:Leah 栏目:web开发

本篇文章给大家分享的是有关使用Nodejs怎么连接mongodb数据库,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

1. 创建package.json

首先,创建我们的工程目录connect-mongodb,并作为我们的当前目录

mkdir connect-mongodb cd connect-mongodb

输入npm init命令创建package.json

npm init

然后,安装mongodb的nodejs版本driver

npm install mongodb --save

mongodb驱动包将会安装到当前目录下的node_modules中

2. 启动MongoDB服务器

安装MongoDB并启动MongoDB数据库服务,可参考我之前的文章,或者MongoDB官方文档

3. 连接MongoDB

创建一个app.js文件,并添加以下代码来连接服务器地址为192.168.0.243,mongodb端口为27017上名称为myNewDatabase的数据库

var MongoClient = require('mongodb').MongoClient,   assert = require('assert'); // Connection URL var url = 'mongodb://192.168.0.243:27017/myNewDatabase'; MongoClient.connect(url,function(err,db){   assert.equal(null,err);   console.log("Connection successfully to server");   db.close(); });

在命令行输入以下命令运行app.js

node app.js

4. 插入文档

在app.js中添加以下代码,使用insertMany方法添加3个文档到documents集合中

var insertDocuments = function(db, callback){   // get ths documents collection   var collection = db.collection('documents');   // insert some documents   collection.insertMany([     {a:1},{a:2},{a:3}   ],function(err,result){     assert.equal(err,null);     assert.equal(3,result.result.n);     assert.equal(3,result.ops.length);     console.log("Inserted 3 documents into the collection");     callback(result);   }); };

insert命令返回一个包含以下属性的对象:

  • result MongoDB返回的文档结果

  • ops 添加了_id字段的文档

  • connection 执行插入操作所使用的connection

在app.js更新以下代码调用insertDocuments方法

var MongoClient = require('mongodb').MongoClient  , assert = require('assert'); // Connection URL var url = 'mongodb://localhost:27017/myproject'; // Use connect method to connect to the server MongoClient.connect(url, function(err, db) {  assert.equal(null, err);  console.log("Connected successfully to server");  insertDocuments(db, function() {   db.close();  }); });

在命令行中使用node app.js运行

5. 查询所有文档

添加findDocuments函数

var findDocuments = function(db,callback){   // get the documents collection   var collection = db.collection('documents');   // find some documents   collection.find({}).toArray(function(err,docs){     assert.equal(err,null);     console.log("Found the following records");     console.log(docs);     callback(docs);   }); };

findDocuments函数查询了所有'documents'集合中所有的文档,将此函数添加到MongoClient.connect的回调函数中

var MongoClient = require('mongodb').MongoClient  , assert = require('assert'); // Connection URL var url = 'mongodb://localhost:27017/myproject'; // Use connect method to connect to the server MongoClient.connect(url, function(err, db) {  assert.equal(null, err);  console.log("Connected correctly to server");  insertDocuments(db, function() {   findDocuments(db, function() {    db.close();   });  }); });

6. 使用过滤条件(query filter)查询文档

查询'a':3的文档

var findDocuments = function(db, callback) {  // Get the documents collection  var collection = db.collection('documents');  // Find some documents  collection.find({'a': 3}).toArray(function(err, docs) {   assert.equal(err, null);   console.log("Found the following records");   console.log(docs);   callback(docs);  });    }

7. 更新文档

var updateDocument = function(db,callback){   // get the documents collection   var collection = db.collection('documents');   // update document where a is 2, set b equal to 1   collection.updateOne({a:2},{     $set:{b:1}   },function(err,result){     assert.equal(err,null);     assert.equal(1,result.result.n);     console.log("updated the document with the field a equal to 2");     callback(result);   }); };

updateDocument方法更新满足条件a为2的第一个文档,新增一个b属性,并将其设置为1。

将updateDocument方法添加到MongoClient.connect方法的回调中

MongoClient.connect(url,function(err,db){   assert.equal(null,err);   console.log("Connection successfully to server");   insertDocuments(db,function(){     updateDocument(db,function(){       db.close();     });   }); });

8. 删除文档

var removeDocument = function(db,callback){   // get the documents collection   var collection = db.collection('documents');   // remove some documents   collection.deleteOne({a:3},function(err,result){     assert.equal(err,null);     assert.equal(1,result.result.n);     console.log("removed the document with the field a equal to 3");     callback(result);   }); };

添加到app.js中

var MongoClient = require('mongodb').MongoClient  , assert = require('assert'); // Connection URL var url = 'mongodb://localhost:27017/myproject'; // Use connect method to connect to the server MongoClient.connect(url, function(err, db) {  assert.equal(null, err);  console.log("Connected successfully to server");  insertDocuments(db, function() {   updateDocument(db, function() {    removeDocument(db, function() {     db.close();    });   });  }); });

9. 创建索引

索引能够改善应用的性能。下面你代码在'a'属性上添加索引

var indexCollection = function(db,callback){   db.collection('documents').createIndex({     a:1   },null,function(err,results){     console.log(results);     callback();   }); };

更新app.js

MongoClient.connect(url,function(err,db){   assert.equal(null,err);   console.log("Connection successfully to server");   insertDocuments(db,function(){     indexCollection(db,function(){       db.close();     });   }); });

以上就是使用Nodejs怎么连接mongodb数据库,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI