Maison >interface Web >js tutoriel >Tutoriel de base sur l'installation et l'utilisation de Mongoose avec Node.js pour faire fonctionner MongoDB_node.js

Tutoriel de base sur l'installation et l'utilisation de Mongoose avec Node.js pour faire fonctionner MongoDB_node.js

WBOY
WBOYoriginal
2016-05-16 15:12:461670parcourir

Installer la mangouste

Utilisez express pour préparer un projet TestMongoDB. La séquence de commandes est la suivante :

express TestMongoDB
cd TestMongoDB
npm install

Après avoir exécuté la commande ci-dessus, utilisez la commande suivante pour installer Mongoose :

npm install mongoose --save

Cette commande installera Mongoose et l'utilisera comme dépendance du projet, et le pilote MongoDB et les modules d'expression rationnelle dont dépend Mongoose seront également automatiquement installés.

Exemple

En utilisant mongoose, vous pouvez créer une nouvelle base de données, créer une nouvelle collection et effectuer des opérations CRUD sur les documents de la collection. Lors de l'écriture du code, vous pouvez vérifier si les résultats répondent aux attentes par rapport au shell mongo.

Créez un nouveau fichier mongo.js sous TestMongoDB avec le contenu suivant :

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/accounts');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
 console.log('mongoose opened!');
 var userSchema = new mongoose.Schema({
   name:{type: String, unique: true}, 
   password:String
  }, 
  {collection: "accounts"}
  );
 var User = mongoose.model('accounts', userSchema);

 User.findOne({name:"WangEr"}, function(err, doc){
  if(err) console.log(err);
  else console.log(doc.name + ", password - " + doc.password);
 });

 var lisi = new User({name:"LiSi", password:"123456"});
 lisi.save(function(err, doc){
  if(err)console.log(err);
  else console.log(doc.name + ' saved');
 }); 
});

Pour le fichier ci-dessus, exécutez directement la commande "node mongo.js" pour voir l'effet.

Pour utiliser mangouste, demandez d'abord, puis utilisez la méthode connect pour vous connecter à la base de données. connecter le prototype :

connect(uri, options, [callback])

Le format de l'uri est similaire : "mongodb://user:pass@localhost:port/database".

L'objet de connexion de Mongoose définit certains événements, tels que connecté, ouvert, fermé, erreur, etc. Nous pouvons surveiller ces événements.

Dans notre exemple de code, j'ai écouté l'événement open, défini le schéma dans la fonction de rappel et appelé mongoose.model pour compiler le schéma et obtenir l'objet Model. Il convient de noter que le nom de la collection spécifié lors de la définition du schéma doit être cohérent avec le premier paramètre de mongoose.model.

Après avoir obtenu l'objet Modèle, vous pouvez effectuer des opérations telles que l'ajout, la suppression, la modification et la requête. L'objet Model possède des méthodes telles que find(), findOne(), update() et remove(), qui sont similaires à la façon dont nous les utilisons dans le shell mongo. Ces méthodes ont un rappel facultatif Lorsque vous fournissez ces rappels, les résultats de l'exécution vous seront renvoyés via ce rappel. Si vous ne le fournissez pas, ces méthodes renverront un objet Query. Vous pouvez assembler de nouvelles options via Query, puis appeler l'exécutable de Query (rappel) pour soumettre la requête.

J'ai utilisé le rappel au lieu de Query lors de la recherche des fichiers de WangEr dans le code.

L'objet Model possède une méthode Model(doc), qui est utilisée pour construire un document. Lors de la création d'un document Lisi, la méthode save() de cet objet Document peut enregistrer le document dans la base de données.
Opérations de base via mangouste :
1.Ajouté

var obj = new Movie();
obj.title = '标题一';
obj.content = '内容';
obj.save(function(err) {
  
});

2. Supprimer

Movie.remove({
  _id:id
},function (err) {
  
})


3. Changer

Movie.update({
  _id:id
},json,{},function (err) {
  
})


4. Vérifiez

Movie.findOne({
  _id: id
}, function(err, obj) {
 
});
Movie.find({}).sort({_id: -1}).limit(3).exec(function(err, obj) {
 
})

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn