mongodb的下載只要在https://www.mongodb.com/網(wǎng)站就能夠下載
或者使用本地下載 https://www.gxlcms.com/softs/590664.html
下載后安裝只用一直點(diǎn)next就可以,注意最好使用默認(rèn)路徑安裝到C盤,然后在任意位置建立一個(gè)文件夾用于儲(chǔ)存你的數(shù)據(jù)庫
這里我命名的是mongodbWorkspace
復(fù)制他的路徑,在命令行工具(windows快捷鍵win+R)中,輸入mongod --dbpath 你的路徑,我的如下所示
現(xiàn)在你就已經(jīng)初始化好了你的數(shù)據(jù)庫,不用關(guān)掉它,他打開來才是開啟了數(shù)據(jù)庫服務(wù),然后再新建一個(gè)命令行工具窗口
輸入mongo,若出現(xiàn)以下窗口,代表你的連接已經(jīng)成功了,這里是能夠?qū)懖僮鱩ongodb的代碼的
輸入use yourDatabaseName =>如果你有這個(gè)數(shù)據(jù)庫名,則進(jìn)入,如果沒有這個(gè)數(shù)據(jù)庫名,則新建了這個(gè)數(shù)據(jù)庫
現(xiàn)在我打開了我的VScode,新建一個(gè)終端后輸入npm installmongodb下載完成后,在index.js中導(dǎo)入(后面會(huì)有代碼)
先定義一個(gè)用于儲(chǔ)存方法的JS文件,我命名為myFun.js,內(nèi)容如下
myFun.js
//傳入db環(huán)境, 集合名字,需要插入的數(shù)據(jù),callback var insertData = function (db, myCollection, data, callback) { //獲得指定的集合 var collection = db.collection(myCollection); //插入數(shù)據(jù) collection.insert(data, function (err, result) { //如果存在錯(cuò)誤 if (err) { console.log('Error:' + err); return; } //調(diào)用傳入的回調(diào)方法,將操作結(jié)果返回 callback(result); }); } //傳入db環(huán)境, 集合名字,要修改的數(shù)據(jù)的條件,要修改的結(jié)果,callback var updateData = function (db, myCollection, where, set, callback) { //獲得指定的集合 var collection = db.collection(myCollection); //修改數(shù)據(jù) collection.updateMany(where, set, function (err, result) { //如果存在錯(cuò)誤 if (err) { console.log('Error:' + err); return; } //調(diào)用傳入的回調(diào)方法,將操作結(jié)果返回 callback(result); }); } //傳入db環(huán)境, 集合名字,要查詢的數(shù)據(jù)的條件,要顯示的字段,callback var findData = function (db, myCollection, where, set, callback) { //獲得指定的集合 var collection = db.collection(myCollection); //查詢數(shù)據(jù) collection.find(where, set).toArray(function (err, result) { //如果存在錯(cuò)誤 if (err) { console.log('Error:' + err); return; } //調(diào)用傳入的回調(diào)方法,將操作結(jié)果返回 callback(result); }); } //傳入db環(huán)境, 集合名字,要?jiǎng)h除數(shù)據(jù)的條件,callback var deleteData = function (db, myCollection, where, callback) { //獲得指定的集合 var collection = db.collection(myCollection); collection.remove(where, function (err, result) { //如果存在錯(cuò)誤 if (err) { console.log('Error:' + err); return; } //調(diào)用傳入的回調(diào)方法,將操作結(jié)果返回 callback(result); }); } //暴露方法 module.exports.insertData = insertData; module.exports.updateData = updateData; module.exports.findData = findData; module.exports.deleteData = deleteData;
最后的幾行是用來暴露內(nèi)部方法的,在你的index.js中可以require這個(gè)JS文件,然后就能訪問到內(nèi)部的數(shù)據(jù)及方法
這里是按照我的想法來定義的,這里只是一個(gè)示例,大家最好能按照自己的想法來設(shè)計(jì)自己的方法,會(huì)使用的更加舒服,比如myCollection可以傳進(jìn)來他的集合名字,也可以傳進(jìn)來的是這個(gè)集合名字的實(shí)例,這樣會(huì)對(duì)自己有很大的提升,下面是我的主JS文件
index.js
var MongoClient = require('mongodb').MongoClient; var myFun = require('./myFun'); //定義連接數(shù)據(jù)庫的地址 const url = 'mongodb://localhost:27017/'; var dbName = 'kejikeji' //連接數(shù)據(jù)庫 MongoClient.connect(url, (err, client) => { if (err) { console.log('數(shù)據(jù)連接失敗'); return false; } console.log('數(shù)據(jù)庫連接成功'); let db = client.db(dbName); /*獲取db對(duì)象*/ let collection = "user"; var data = [{ "name": "mongodb3.0", "age": 114 }, { "name": "mongodb3.0", "age": 17 }]; myFun.insertData(db, collection, data, (result) => { console.log(result.ops); }); //要修改數(shù)據(jù)的條件,>=10歲的用戶 var updateWhere = { age: { "$gte": 10 } }; //要修改的結(jié)果 var updateSet = { $set: { age: 95 } }; myFun.updateData(db, collection, updateWhere, updateSet, (result) => { console.log(result.result); }); //要查詢數(shù)據(jù)的條件,>=10歲的用戶 var findWhere = { age: { "$gte": 10 } }; //要顯示的字段 var findSet = { age: 1 }; myFun.findData(db, collection, findWhere, findSet, (result) => { console.log(result[1].age); }); //要?jiǎng)h除數(shù)據(jù)的條件,name=mongodb3.0的用戶刪除 var deleteWhere = { name: "mongodb3.0" }; myFun.deleteData(db, collection, deleteWhere, (result) => { console.log(result); }); })
這是我的運(yùn)行截圖,代表操作都正確了,在第二個(gè)操作窗口,大家可以u(píng)se進(jìn)入數(shù)據(jù)庫中,輸入db.yourCollectionName.find()查詢此集合內(nèi)的全部字段
這樣就能確定自己的語句有沒有起作用了
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com