使用Nodejs连接mongodb数据库的实现

这篇文章主要介绍了使用nodejs连接mongodb数据库的实现代码,需要的朋友可以参考下

一个简单的nodejs连接mongodb示例,来自 mongodb官方示例

1. 创建package.json

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

mkdir connect-mongodbcd 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 URLvar 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 URLvar url = 'mongodb://localhost:27017/myproject';// Use connect method to connect to the serverMongoClient.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 URLvar url = 'mongodb://localhost:27017/myproject';// Use connect method to connect to the serverMongoClient.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 URLvar url = 'mongodb://localhost:27017/myproject';// Use connect method to connect to the serverMongoClient.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();    });  });});

登录后复制

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

node-mysql中防止SQL注入的方法

NodeJs form-data格式传输文件的方法

以上就是使用Nodejs连接mongodb数据库的实现的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2747877.html

(0)
上一篇 2025年3月8日 04:30:59
下一篇 2025年3月8日 00:54:03

AD推荐 黄金广告位招租... 更多推荐

发表回复

登录后才能评论