最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Nodejs連接mongodb數(shù)據(jù)庫的實現(xiàn)代碼

 更新時間:2017年08月21日 10:35:21   作者:秦ge  
這篇文章主要介紹了使用Nodejs連接mongodb數(shù)據(jù)庫的實現(xiàn)代碼,需要的朋友可以參考下

一個簡單的nodejs連接mongodb示例,來自 mongodb官方示例

1. 創(chuàng)建package.json

首先,創(chuàng)建我們的工程目錄connect-mongodb,并作為我們的當(dāng)前目錄

mkdir connect-mongodb
cd connect-mongodb

輸入npm init命令創(chuàng)建package.json

npm init

然后,安裝mongodb的nodejs版本driver

npm install mongodb --save

mongodb驅(qū)動包將會安裝到當(dāng)前目錄下的node_modules中

2. 啟動MongoDB服務(wù)器

安裝MongoDB并啟動MongoDB數(shù)據(jù)庫服務(wù),可參考我之前的文章,或者MongoDB官方文檔

3. 連接MongoDB

創(chuàng)建一個app.js文件,并添加以下代碼來連接服務(wù)器地址為192.168.0.243,mongodb端口為27017上名稱為myNewDatabase的數(shù)據(jù)庫

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();
});

在命令行輸入以下命令運(yùn)行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返回的文檔結(jié)果
  • ops 添加了_id字段的文檔
  • connection 執(zhí)行插入操作所使用的connection

在app.js更新以下代碼調(diào)用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運(yùn)行

5. 查詢所有文檔

添加findDocuments函數(shù)

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函數(shù)查詢了所有'documents'集合中所有的文檔,將此函數(shù)添加到MongoClient.connect的回調(diào)函數(shù)中

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屬性,并將其設(shè)置為1。

將updateDocument方法添加到MongoClient.connect方法的回調(diào)中

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. 創(chuàng)建索引

索引能夠改善應(yīng)用的性能。下面你代碼在'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();
    });
  });
});

代碼已經(jīng)托管在碼云

總結(jié)

以上所述是小編給大家介紹的使用Nodejs連接mongodb數(shù)據(jù)庫的實現(xiàn)代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Node爬蟲工具Puppeteer入門教程實踐

    Node爬蟲工具Puppeteer入門教程實踐

    Puppeteer是一個Node庫,本文主要介紹了Node爬蟲工具Puppeteer入門教程實踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Nodejs中使用phantom將html轉(zhuǎn)為pdf或圖片格式的方法

    Nodejs中使用phantom將html轉(zhuǎn)為pdf或圖片格式的方法

    這篇文章主要介紹了Nodejs中使用phantom將html轉(zhuǎn)為pdf或圖片格式的方法,需要的朋友可以參考下
    2017-09-09
  • Node.js log4js日志管理詳解

    Node.js log4js日志管理詳解

    日志對任何的應(yīng)用來說都是至關(guān)重要的,下面這篇文章主要給大家介紹了關(guān)于Node.js log4js日志管理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • 在NPM發(fā)布自己造的輪子的方法步驟

    在NPM發(fā)布自己造的輪子的方法步驟

    這篇文章主要介紹了在NPM發(fā)布自己造的輪子的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • 基于Express和Multer實現(xiàn)文件本地服務(wù)器文件上傳功能

    基于Express和Multer實現(xiàn)文件本地服務(wù)器文件上傳功能

    在現(xiàn)代應(yīng)用程序中,文件上傳功能成為了用戶共享和存儲數(shù)據(jù)的重要途徑,所以本文我們一起來探討文件上傳中間件的重要性,并提供常見的實現(xiàn)方法和相應(yīng)的代碼吧
    2023-06-06
  • nodejs操作mysql實現(xiàn)增刪改查的實例

    nodejs操作mysql實現(xiàn)增刪改查的實例

    下面小編就為大家?guī)硪黄猲odejs操作mysql實現(xiàn)增刪改查的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • nodejs簡單實現(xiàn)TCP服務(wù)器端和客戶端的聊天功能示例

    nodejs簡單實現(xiàn)TCP服務(wù)器端和客戶端的聊天功能示例

    這篇文章主要介紹了nodejs簡單實現(xiàn)TCP服務(wù)器端和客戶端的聊天功能,結(jié)合實例形式分析了nodejs基于TCP協(xié)議實現(xiàn)的聊天程序客戶端與服務(wù)器端具體步驟與相關(guān)操作技巧,代碼備有較為詳盡的注釋便于理解,需要的朋友可以參考下
    2018-01-01
  • socket.io斷線重連的幾種場景及處理方法

    socket.io斷線重連的幾種場景及處理方法

    Socket.IO是一個庫,可用于在瀏覽器和服務(wù)器之間進(jìn)行實時,雙向和基于事件的通信,下面這篇文章主要給大家介紹了關(guān)于socket.io斷線重連的幾種場景及處理方法,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • node打造微信個人號機(jī)器人的方法示例

    node打造微信個人號機(jī)器人的方法示例

    這篇文章主要介紹了node打造微信個人號機(jī)器人的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Node.js的包詳細(xì)介紹

    Node.js的包詳細(xì)介紹

    這篇文章主要介紹了Node.js的包詳細(xì)介紹,Node.js的包是一個目錄,其中包含JSON格式的包說明文件package.json,Node.js的包基本遵循CommonJS規(guī)范,需要的朋友可以參考下
    2015-01-01

最新評論

元江| 许昌市| 大新县| 黑河市| 马鞍山市| 内江市| 潜江市| 盖州市| 平陆县| 澄城县| 佳木斯市| 石嘴山市| 富川| 富顺县| 建阳市| 兴文县| 海安县| 简阳市| 建昌县| 东丽区| 平和县| 都兰县| 周至县| 准格尔旗| 西吉县| 萨嘎县| 大埔区| 夏河县| 泸定县| 平陆县| 资阳市| 苏尼特左旗| 泾源县| 潮安县| 青海省| 崇左市| 金湖县| 灵宝市| 济宁市| 贡山| 汤阴县|