Untuk menyimpan data pengguna dan data perniagaan tapak web, pangkalan data biasanya diperlukan. MongoDB dan Node.js dipadankan dengan baik kerana MongoDB ialah pangkalan data bukan perhubungan berdasarkan dokumen disimpan dalam BSON (format binari ringan JSON, arahan untuk mengurus pangkalan data seperti penambahan, pemadaman, pengubahsuaian dan pertanyaan sangat serupa dengan sintaks JavaScript. Jika anda mengakses data MongoDB dalam Node.js, anda akan berasa seperti kami sekeluarga, yang sangat mesra.
Saya juga akan menggunakan MongoDB sebagai pangkalan data saya.
MongoDB menggunakan koleksi dan dokumen untuk menerangkan dan menyimpan data Koleksi adalah bersamaan dengan jadual, dan dokumen adalah setara dengan baris Walau bagaimanapun, dalam pangkalan data hubungan seperti MySQL, struktur jadual adalah tetap Ia terdiri daripada beberapa lajur, dan baris adalah sama Walau bagaimanapun, MongoDB adalah berbeza dalam koleksi boleh mempunyai struktur yang berbeza, yang lebih fleksibel.
Pasang Mongo
Panduan terperinci ada di sini (dokumentasi rasmi MongoDB): https://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/.
Pergi ke https://www.mongodb.org/downloads untuk memuat turun pakej pemasangan Sistem Windows ialah fail msi Saya memilih versi "Windows 64-bit 2008 R2+".
Pemasangan adalah sangat mudah Anda boleh lalai atau memilih lokasi pemasangan yang saya pasang dalam direktori MongoDB pemacu G. Selepas pemasangan, struktur direktori adalah seperti berikut: G:MongoDBServer3.0.
Mongod, mongo dan alatan lain semuanya dalam direktori bin di bawah direktori 3.0.
Mula
Untuk menggunakan MongoDB, anda perlu menentukan folder untuk menyimpan data saya mencipta folder bernama db di bawah G:MongoDB.
Buka cmd, masukkan direktori G:MongoDBServer3.0bin, jalankan "mongod –dbpath=G:MongoDBdb", MongoDB akan dimulakan dan anda akan melihat gambar berikut:
Selepas MongoDB dimulakan, ia akan mendengar pada port dan menunggu klien untuk menyambung Seperti yang dapat dilihat daripada rajah di atas, port mendengar lalai ialah 27017. Anda boleh menukar port ini dengan pilihan “-port” Contohnya, arahan “mongod –port 28018 –dbpath=G:MongoDBdb” akan memulakan MongoDB dan mendengar port 28018.
Selepas memulakan MongoDB, kami boleh menggunakan mongo (cengkerang interaktif) untuk mengurus pangkalan data. Laksanakan mongo terus dalam direktori bin, dan anda boleh melihat gambar berikut:
Mongo Shell menyambung ke pangkalan data ujian secara lalai, dan juga memberitahu kami bahawa kami boleh memasukkan bantuan untuk melihat bantuan. Anda boleh menaip bantuan dan tekan Enter untuk melihat arahan yang tersedia.
Perhatikan bahawa mongod bermula tanpa pengesahan secara lalai Setelah klien disambungkan, ia boleh beroperasi sesuka hati, termasuk penciptaan pangkalan data, penambahan, pemadaman, pengubahsuaian, dsb. Jika anda ingin mengehadkan kebenaran pengguna, anda boleh mengkonfigurasinya sendiri. Saya akan pergi terus ke bawah.
Pasang pemandu mongoose
Pasang alatan GIT:
Memandangkan laman web github tidak menyokong muat turun terus pakej kod sumber yang membungkus semua submodul, anda perlu menyemak semua kod sumber melalui alat git. Daripada http://code.google.com/p/msysgit/downloads/list, anda boleh memuat turun msysgit, alat klien git di bawah platform Windows (fail versi terkini ialah Git-1.7.7.1-preview20111027.exe). Selepas memuat turun, klik dua kali untuk memasang.
Muat turun kod sumber NPM:
Buka alat baris arahan (CMD) dan laksanakan arahan berikut untuk menyemak semua kod sumber NPM dan kod bergantung melalui msysgit dan pasang npm.
git clone --recursive git://github.com/isaacs/npm.git cd npm node cli.js install npm -gf
Sebelum melaksanakan kod ini, sila pastikan bahawa node.exe dipasang melalui node.msi atau berada dalam pembolehubah persekitaran PATH. Perintah ini juga akan menambah npm pada pembolehubah persekitaran PATH, dan anda kemudian boleh melaksanakan arahan npm di mana-mana sahaja. Jika anda menghadapi ralat kebenaran semasa pemasangan, pastikan alat baris arahan cmd dijalankan sebagai pentadbir. Selepas pemasangan berjaya, laksanakan arahan berikut:
npm install underscore
Pulangan:
underscore@1.2.2 ./node_modules/underscore
Dengan cara ini, NPM di bawah platform Windows dipasang, dan kemudian kita boleh memasang mongoose
npm install mongoose
Contoh
Beberapa operasi asas dan arahan ditulis dalam ulasan kod:
// mongoose 链接 var mongoose = require('mongoose'); var db = mongoose.createConnection('mongodb://127.0.0.1:27017/NodeJS'); // 链接错误 db.on('error', function(error) { console.log(error); }); // Schema 结构 var mongooseSchema = new mongoose.Schema({ username : {type : String, default : '匿名用户'}, title : {type : String}, content : {type : String}, time : {type : Date, default: Date.now}, age : {type : Number} }); // 添加 mongoose 实例方法 mongooseSchema.methods.findbyusername = function(username, callback) { return this.model('mongoose').find({username: username}, callback); } // 添加 mongoose 静态方法,静态方法在Model层就能使用 mongooseSchema.statics.findbytitle = function(title, callback) { return this.model('mongoose').find({title: title}, callback); } // model var mongooseModel = db.model('mongoose', mongooseSchema); // 增加记录 基于 entity 操作 var doc = {username : 'emtity_demo_username', title : 'emtity_demo_title', content : 'emtity_demo_content'}; var mongooseEntity = new mongooseModel(doc); mongooseEntity.save(function(error) { if(error) { console.log(error); } else { console.log('saved OK!'); } // 关闭数据库链接 db.close(); }); // 增加记录 基于model操作 var doc = {username : 'model_demo_username', title : 'model_demo_title', content : 'model_demo_content'}; mongooseModel.create(doc, function(error){ if(error) { console.log(error); } else { console.log('save ok'); } // 关闭数据库链接 db.close(); }); // 修改记录 mongooseModel.update(conditions, update, options, callback); var conditions = {username : 'model_demo_username'}; var update = {$set : {age : 27, title : 'model_demo_title_update'}}; var options = {upsert : true}; mongooseModel.update(conditions, update, options, function(error){ if(error) { console.log(error); } else { console.log('update ok!'); } //关闭数据库链接 db.close(); }); // 查询 // 基于实例方法的查询 var mongooseEntity = new mongooseModel({}); mongooseEntity.findbyusername('model_demo_username', function(error, result){ if(error) { console.log(error); } else { console.log(result); } //关闭数据库链接 db.close(); }); // 基于静态方法的查询 mongooseModel.findbytitle('emtity_demo_title', function(error, result){ if(error) { console.log(error); } else { console.log(result); } //关闭数据库链接 db.close(); }); // mongoose find var criteria = {title : 'emtity_demo_title'}; // 查询条件 var fields = {title : 1, content : 1, time : 1}; // 待返回的字段 var options = {}; mongooseModel.find(criteria, fields, options, function(error, result){ if(error) { console.log(error); } else { console.log(result); } //关闭数据库链接 db.close(); }); // 删除记录 var conditions = {username: 'emtity_demo_username'}; mongooseModel.remove(conditions, function(error){ if(error) { console.log(error); } else { console.log('delete ok!'); } //关闭数据库链接 db.close(); });