0
votes

Comment lire les données de MongoDB en utilisant Mongoose?

Dans la documentation MongoDB ici il dit de faire quelque chose comme:

mongoose.connect('mongodb://localhost:27017/eBookStore');

let newBookSchema = new mongoose.Schema({
  bookName: {type: String},
  bookSubtitle: {type: String},
  publicationDate: {type: Number, default: new Date().getTime()}
});

let Book = mongoose.model('books', newBookSchema);

db.Book.find();

Dans mon code, j'ai cette partie:

db.bios.find()

où «eBookStore» est le nom de ma base de données et «livres» est le nom de ma collection. Je sais que l'endroit où j'ai tapé «db» dans «db.Book.find ()» est incorrect, mais je ne sais pas à quoi devrait ressembler le code lors du référencement de la base de données. Veuillez aider!


1 commentaires

J'ai une application publique utilisant nodejs et mangouste ici. Puisse-t-il vous aider github.com/dangminhtruong/havana


4 Réponses :


1
votes

Vous pouvez consulter la documentation de la mangouste

https://mongoosejs.com/docs/guide.html

Pour être spécifique au modèle, utilisez le lien ci-dessous https://mongoosejs.com/docs/models.html

Ex let Book = mongoose.model ('Book', newBookSchema, 'books');

// Le premier argument est le nom du modèle mangouste, le deuxième schéma et le troisième nom de la collection dans mongodb

Book.find ({}}, fonction (err, arr) {});


0 commentaires

1
votes

En utilisant votre même code, une fois que vous avez connecté mongo via mongoose vous pouvez effectuer la recherche directement, pas besoin de mentionner db. Cela fonctionne toujours si vous avez un schéma de la collection dans laquelle vous souhaitez effectuer une recherche.

mongoose.connect('mongodb://localhost:27017/eBookStore');

let newBookSchema = new mongoose.Schema({
  bookName: {type: String},
  bookSubtitle: {type: String},
  publicationDate: {type: Number, default: new Date().getTime()}
});

let Book = mongoose.model('book', newBookSchema);

Book.find({queryForFilters});

Remarquez que j'ai supprimé le «s» dans les livres à la ligne 9 de votre code. C'est parce que mangouste note le premier argument au pluriel et en minuscules, donc passer book comme premier argument aboutira à une collection nommée books.


0 commentaires

3
votes
 Book.findOne({bookName: 'Game of thrones'}, (err,oneBook) =>{
    console.log(oneBook); 
});

0 commentaires

3
votes

Vous avez ceci est votre schéma 1. bookName 2. livreSous-titre 3. date de publication Ainsi, en utilisant l'un des, vous pouvez trouver les détails du schéma
Vous avez créé la fonction comme ci-dessous pour rechercher le schéma du livre de n'importe où

public getBookDetails(name, callback: CallableFunction) {
        Book.find({bookName: name }, (err, book) => {
            if (err) {
                callback(err);
            } else {
                callback(book);
            }
        });
    }

0 commentaires