一个简单的nodejs连接mongodb示例,来自 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命令返回一个包含以下属性的对象:
在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数据库的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
本文向大家介绍ASP.NET连接sql2008数据库的实现代码,包括了ASP.NET连接sql2008数据库的实现代码的使用技巧和注意事项,需要的朋友参考一下 利用SqlConnection对象连接sql2000以上版本,并使用SqlCommand对象对数据库进行读取。 SqlCommand类概述: 用于对sql数据库执行sql语句或存储过程。 命名空间:System.Data.SqlClie
问题内容: 我正在尝试创建一个多租户应用程序(saas),其中每个客户端都有自己的数据库。 我的情况是: 我创建了一个中间件,该中间件将确定谁是基于子域的客户端,然后从常规数据库中检索客户端的数据库连接信息。我不知道如何为此客户端建立连接对象,以便能够在我的控制器中使用。我应该在中间件还是控制器中执行此操作?如果它在模型中,我该如何传递连接字符串和参数(我可以使用会话,但我不知道如何从模型内部访问
本文向大家介绍在Docker中使用mongodb数据库的实现代码,包括了在Docker中使用mongodb数据库的实现代码的使用技巧和注意事项,需要的朋友参考一下 获取 mongo 镜像 运行 mongodb 服务 运行 mongodb 客户端 使用 mongo-express 管理mongodb mongo-express是MongoDB的一个可视化图形管理工具,这里我们还是通过docker来运
在操作 MongoDB 数据库之前我们需要先连接数据库,您可以使用 MongoDB shell 来连接 MongoDB,也可以使用 PHP、Java 等编程语言来连接 MongoDB,本节我们主要介绍一下使用 MongoDB shell 来连接 MongoDB。 在连接 MongoDB 之前,我们需要先启动 MongoDB,启动 MongoDB 的方式非常简单,您只需要在 MongoDB 安装目录
本文向大家介绍VB6实现连接Access数据库的ADODB代码实现方法,包括了VB6实现连接Access数据库的ADODB代码实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了使用ADODB.Connection连接access数据库的方法,驱动类型版本为:Microsoft.Jet.OLEDB.4.0。在VB的数据库操作中,连接数据库是第一步,也是最基本的,本文所述的这个例子,对于
本文向大家介绍Java使用JDBC连接数据库的实现方法,包括了Java使用JDBC连接数据库的实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java使用JDBC连接数据库的实现方法,是Java数据库程序设计里非常实用的重要技巧。分享给大家供大家参考。具体如下: JDBC(Java Data Base Connectivity)数据库连接,通常我们在编写web应用或java应用程序