Afin de sauvegarder les données utilisateur et les données commerciales du site Web, une base de données est généralement nécessaire. MongoDB et Node.js sont particulièrement bien adaptés car MongoDB est une base de données non relationnelle basée sur des documents. Les documents sont stockés en BSON (un format binaire léger de JSON). Les commandes permettant de gérer la base de données telles que l'ajout, la suppression, la modification et la requête. sont très similaires à la syntaxe JavaScript. Si vous accédez aux données MongoDB dans Node.js, vous aurez l'impression que nous sommes une famille, ce qui est très cordial.
Je vais également utiliser MongoDB comme base de données.
MongoDB utilise des collections et des documents pour décrire et stocker des données. Les collections sont équivalentes aux tables, et les documents sont équivalents aux lignes. Cependant, dans les bases de données relationnelles telles que MySQL, la structure des tables est fixe. Par exemple, une ligne est composée de. Il se compose de plusieurs colonnes et les lignes sont les mêmes. Cependant, MongoDB est différent. Plusieurs documents d'une collection peuvent avoir des structures différentes, ce qui est plus flexible.
Installer Mongo
Le guide détaillé est ici (documentation officielle de MongoDB) : https://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/.
Allez sur https://www.mongodb.org/downloads pour télécharger le package d'installation. Le système Windows est un fichier msi. J'ai choisi la version "Windows 64-bit 2008 R2+".
L'installation est très simple. Vous pouvez par défaut ou choisir l'emplacement d'installation. Je l'ai installé dans le répertoire MongoDB du lecteur G. Après l'installation, la structure des répertoires est la suivante : G:MongoDBServer3.0.
Mongod, mongo et d'autres outils se trouvent tous dans le répertoire bin sous le répertoire 3.0.
Démarrer
Pour utiliser MongoDB, vous devez spécifier un dossier pour stocker les données. J'ai créé un dossier nommé db sous G:MongoDB.
Ouvrez cmd, entrez dans le répertoire G:MongoDBServer3.0bin, exécutez "mongod –dbpath=G:MongoDBdb", MongoDB sera démarré et vous verrez l'image suivante :
Une fois MongoDB démarré, il écoutera sur un port et attendra que le client se connecte. Comme le montre la figure ci-dessus, le port d'écoute par défaut est 27017. Vous pouvez modifier ce port avec l'option « –port ». Par exemple, la commande « mongod –port 28018 –dbpath=G:MongoDBdb » démarrera MongoDB et écoutera le port 28018.
Après avoir démarré MongoDB, nous pouvons utiliser mongo (shell interactif) pour gérer la base de données. Exécutez mongo directement dans le répertoire bin, et vous pouvez voir l'image suivante :
Mongo Shell se connecte à la base de données de test par défaut et nous indique également que nous pouvons saisir l'aide pour afficher l'aide. Vous pouvez taper help et appuyer sur Entrée pour voir quelles commandes sont disponibles.
Notez que mongod démarre sans authentification par défaut. Une fois le client connecté, il peut fonctionner à volonté, y compris la création, l'ajout, la suppression, la modification de base de données, etc. Si vous souhaitez limiter les autorisations des utilisateurs, vous pouvez le configurer vous-même. Je vais directement ici.
Installer le pilote mangouste
Installer les outils GIT :
Étant donné que le site Web github ne prend pas en charge le téléchargement direct des packages de code source contenant tous les sous-modules, vous devez vérifier tous les codes sources via l'outil git. Depuis http://code.google.com/p/msysgit/downloads/list, vous pouvez télécharger msysgit, un outil client git sous la plate-forme Windows (le dernier fichier de version est Git-1.7.7.1-preview20111027.exe). Après le téléchargement, double-cliquez pour installer.
Télécharger le code source de NPM :
Ouvrez l'outil de ligne de commande (CMD) et exécutez la commande suivante pour vérifier tout le code source NPM et les codes dépendants via msysgit et installez npm.
git clone --recursive git://github.com/isaacs/npm.git cd npm node cli.js install npm -gf
Avant d'exécuter ce code, veuillez vous assurer que node.exe est installé via node.msi ou se trouve dans la variable d'environnement PATH. Cette commande ajoutera également npm à la variable d'environnement PATH, et vous pourrez ensuite exécuter la commande npm n'importe où. Si vous rencontrez des erreurs d'autorisation lors de l'installation, assurez-vous que l'outil de ligne de commande cmd est exécuté en tant qu'administrateur. Après une installation réussie, exécutez la commande suivante :
npm install underscore
Retour :
underscore@1.2.2 ./node_modules/underscore
De cette façon, NPM sous la plateforme Windows est installé, et ensuite nous pouvons installer mangouste
npm install mongoose
Exemple
Certaines opérations et instructions de base sont écrites dans les commentaires du code :
// 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(); });