日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

nodeJS下利用mongdb进行数据库操作

發布時間:2024/4/13 javascript 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nodeJS下利用mongdb进行数据库操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

需要引用的node_modules

npm??install?mongodb

此處引用的mongodb模塊版本為1.4.12

一.初始化mongdb.

var?mongodb?=?require('mongodb');var?MongoClient?=?require('mongodb').MongoClient; var?db; var?util?=?require('util');?? //?Initialize?connection?once MongoClient.connect("mongodb://localhost:27017/threepigs",?function(err,?database)?{if(err)?throw?err;db?=?database; });

首先引用mongodb模塊,然后獲得MongoClient對象。

從MongoClient對象中調用connect方法獲取數據庫連接。注意connect方法會默認創建出含有五個數據庫連接的連接吃。

二.CRUD操作.

所有操作中參數的數據格式均為BSON格式。

1.查詢語句

db.collection(tableName).find({'XXXX':?xxxx},{sort:?{'XXXX':?1}}).toArray(function(err,?docs)?{if?(err)?throw?err;return?;});

使用find函數查看某一文檔內容,find()第一個參數為查詢參數,第二個參數為對結果集操作

2.插入語句

db.collection(tableName).insert(?{'XXXX':?xxxx},?{w:1},?function(err,?objects)?{if?(err)?throw?err;});

使用insert函數插入一個文檔,insert()第一個參數為插入的數據。

3.更新操作

db.collection(tableName).update({'XXXX':?xxxx},?{$set:?{'XXXX':?xxxx}},?{w:1,upsert:true},?function(err)?{if?(err)?console.warn(err.message);});

使用update函數更新一個文檔,update()第一個參數為更新的數據,set參數查詢被更新的文檔。 upsert:true標記,如果set參數未查詢到相應文檔則新建一個。

4.刪除操作

db.collection(tableName).remove(?{'XXXX':?xxxx}?,{w:?1},?function(err,?docs)?{if?(err)?throw?err;});

使用remove()方法移除文檔,remove()第一個參數為要移除文檔的指定條件。

三.注意

因為nodeJS是異步的。所以在對數據庫操作的時候,如果需要將上一步得到的結果傳遞給下一個操作那么就需要對這些操作做一定的處理單純

db.collection(tableName).update({'XXXX':?xxxx},?{$set:?{'XXXX':?xxxx}},?{w:1,upsert:true},?function(err)?{if?(err)?console.warn(err.message);});db.collection(tableName).remove(?{'XXXX':?xxxx}?,{w:?1},?function(err,?docs)?{if?(err)?throw?err;});

這樣的并列操作是會出現問題的,因為上一步的操作的結果還沒返回,nodeJS就已經進行到了下一步。

解決方法。

嵌套語句

db.collection(tableName).update({'XXXX':?xxxx},?{$set:?{'XXXX':?xxxx}},?{w:1,upsert:true},?function(err)?{if?(err)?console.warn(err.message);db.collection(tableName).remove(?{'XXXX':?xxxx}?,{w:?1},?function(err,?docs)?{if?(err)?throw?err;});});

將下一步需要進行的操作放到上一步的回調函數中,保證其按順序執行,但是當需要嵌套的數目非常大時,就會非常的麻煩。

轉載于:https://my.oschina.net/kakakaka/blog/337860

總結

以上是生活随笔為你收集整理的nodeJS下利用mongdb进行数据库操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。