mongodb的下載只要在https://www.mongodb.com/網站就能夠下載
下載后安裝只用一直點next就可以,注意最好使用默認路徑安裝到C盤,然后在任意位置建立一個文件夾用於儲存你的數據庫
這里我命名的是mongodbWorkspace
復制他的路徑,在命令行工具(windows快捷鍵win+R)中,輸入mongod --dbpath 你的路徑,我的如下所示
現在你就已經初始化好了你的數據庫,不用關掉它,他打開來才是開啟了數據庫服務,然后再新建一個命令行工具窗口
輸入mongo,若出現以下窗口,代表你的連接已經成功了,這里是能夠寫操作mongodb的代碼的
輸入use yourDatabaseName =>如果你有這個數據庫名,則進入,如果沒有這個數據庫名,則新建了這個數據庫
現在我打開了我的VScode,新建一個終端后輸入npm install mongodb下載完成后,在index.js中導入(后面會有代碼)
先定義一個用於儲存方法的JS文件,我命名為myFun.js,內容如下
myFun.js
1 //傳入db環境, 集合名字,需要插入的數據,callback 2 var insertData = function (db, myCollection, data, callback) { 3 //獲得指定的集合 4 var collection = db.collection(myCollection); 5 //插入數據 6 collection.insert(data, function (err, result) { 7 //如果存在錯誤 8 if (err) { 9 console.log('Error:' + err); 10 return; 11 } 12 //調用傳入的回調方法,將操作結果返回 13 callback(result); 14 }); 15 } 16 //傳入db環境, 集合名字,要修改的數據的條件,要修改的結果,callback 17 var updateData = function (db, myCollection, where, set, callback) { 18 //獲得指定的集合 19 var collection = db.collection(myCollection); 20 //修改數據 21 collection.updateMany(where, set, function (err, result) { 22 //如果存在錯誤 23 if (err) { 24 console.log('Error:' + err); 25 return; 26 } 27 //調用傳入的回調方法,將操作結果返回 28 callback(result); 29 }); 30 } 31 //傳入db環境, 集合名字,要查詢的數據的條件,要顯示的字段,callback 32 var findData = function (db, myCollection, where, set, callback) { 33 //獲得指定的集合 34 var collection = db.collection(myCollection); 35 //查詢數據 36 collection.find(where, set).toArray(function (err, result) { 37 //如果存在錯誤 38 if (err) { 39 console.log('Error:' + err); 40 return; 41 } 42 //調用傳入的回調方法,將操作結果返回 43 callback(result); 44 }); 45 } 46 //傳入db環境, 集合名字,要刪除數據的條件,callback 47 var deleteData = function (db, myCollection, where, callback) { 48 //獲得指定的集合 49 var collection = db.collection(myCollection); 50 collection.remove(where, function (err, result) { 51 //如果存在錯誤 52 if (err) { 53 console.log('Error:' + err); 54 return; 55 } 56 //調用傳入的回調方法,將操作結果返回 57 callback(result); 58 }); 59 } 60 61 62 //暴露方法 63 module.exports.insertData = insertData; 64 module.exports.updateData = updateData; 65 module.exports.findData = findData; 66 module.exports.deleteData = deleteData;
最后的幾行是用來暴露內部方法的,在你的index.js中可以require這個JS文件,然后就能訪問到內部的數據及方法
這里是按照我的想法來定義的,這里只是一個示例,大家最好能按照自己的想法來設計自己的方法,會使用的更加舒服,比如myCollection可以傳進來他的集合名字,也可以傳進來的是這個集合名字的實例,這樣會對自己有很大的提升,下面是我的主JS文件
index.js
1 var MongoClient = require('mongodb').MongoClient; 2 var myFun = require('./myFun'); 3 4 //定義連接數據庫的地址 5 const url = 'mongodb://localhost:27017/'; 6 var dbName = 'kejikeji' 7 8 //連接數據庫 9 MongoClient.connect(url, (err, client) => { 10 if (err) { 11 console.log('數據連接失敗'); 12 return false; 13 } 14 console.log('數據庫連接成功'); 15 let db = client.db(dbName); /*獲取db對象*/ 16 let collection = "user"; 17 var data = [{ "name": "mongodb3.0", "age": 114 }, { "name": "mongodb3.0", "age": 17 }]; 18 myFun.insertData(db, collection, data, (result) => { 19 console.log(result.ops); 20 }); 21 //要修改數據的條件,>=10歲的用戶 22 var updateWhere = { age: { "$gte": 10 } }; 23 //要修改的結果 24 var updateSet = { $set: { age: 95 } }; 25 myFun.updateData(db, collection, updateWhere, updateSet, (result) => { 26 console.log(result.result); 27 }); 28 //要查詢數據的條件,>=10歲的用戶 29 var findWhere = { age: { "$gte": 10 } }; 30 //要顯示的字段 31 var findSet = { age: 1 }; 32 myFun.findData(db, collection, findWhere, findSet, (result) => { 33 console.log(result[1].age); 34 }); 35 //要刪除數據的條件,name=mongodb3.0的用戶刪除 36 var deleteWhere = { name: "mongodb3.0" }; 37 myFun.deleteData(db, collection, deleteWhere, (result) => { 38 console.log(result); 39 }); 40 })
這是我的運行截圖,代表操作都正確了,在第二個操作窗口,大家可以use進入數據庫中,輸入db.yourCollectionName.find()查詢此集合內的全部字段
這樣就能確定自己的語句有沒有起作用了