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 /…