2
votes

Comment se connecter / interroger Mongoose à une base de données existante

Je suis en train d'essayer de connecter un serveur Node / Express à une base de données / collection MongoDB existante. Je me suis déjà connecté avec succès à la base de données. Cependant, j'ai beaucoup de mal à configurer mes modèles / schémas à interroger.

MongoDB est MongoDB Atlas et possède une collection avec plus de 800 000 documents. Le nom de la collection unique est "delitosCollection".

J'ai essayé ce qui suit sans succès:

var CrimeData = mongoose.model('DelitosCollection', new Schema({}),'delitosCollection');


mongoose.connection.on('open', function(ref){
    console.log("connected to the mongo server");

   CrimeData.find({}, (err,results) => {
       if(err){
           console.log("ERROR")
           throw err
       }
       console.log("results: ", results.length)
   } )
});

Je sais que la connexion fonctionne comme Je reçois le console.log sans erreur. Cependant, results.length renvoie 0 alors qu'il devrait être supérieur à 800 000. J'ai passé beaucoup trop d'heures là-dessus.


1 commentaires

3 Réponses :


0
votes

connexion à mongo db

// Crimes Schema 
const CrimeDetailsSchema= new Schema({
    first_name: {
        type: String,
        required: true
    },
    last_name: {
        type: String,
        required: true
    },
    email: {
        type: String,
        required: true
    }

});

const Profile = module.exports = mongoose.model('delitosCollection', CrimeDetailsSchema, 'delitosCollection');

après cela, vous devrez créer votre schéma et alors seulement vous pourrez interroger la base de données

créer votre schéma comme ceci p >

// Connect to mongoDB
mongoose.connect('mongodb://localhost/[yourDbName]',{useNewUrlParser:true})
    .then(function(){
        console.log('mongoDB connected');
    })
    .catch(function(){
        console.log('Error :');
    }) 

ensuite, créez vos requêtes

vous pouvez vous en faire une idée dans la documentation de mangouste ici


0 commentaires

1
votes

Vous pouvez vous référer à la réponse donnée ci-dessous, il suffit de passer un objet vide dans le schéma comme db.model ('users', new Schema ({}))


0 commentaires

1
votes

Créez un schéma vide pour chaque collection que vous souhaitez utiliser puis créez un modèle à utiliser dans votre projet le modèle prend 3 paramètres 1) nom du modèle 2) nom du schéma 3) nom de la collection (de l'atlas mongodb)

comme ça

User.find({})

alors vous pouvez utiliser le modèle normalement

const mongoose = require('mongoose');
mongoose.connect('mongodb uri')
const userSchema = new mongoose.Schema({});
const User = mongoose.model('User', userSchema, 'user');

p>


0 commentaires