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.
3 Réponses :
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
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 ({}))
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>
Copie possible de stackoverflow .com / questions / 5794834 /…