2017-04-20 4 views
1

Ich habe ein Problem und könnte wirklich Hilfe gebrauchen. Wir hatten eine Anwendung, die MySQL verwendet und wir wechseln zu MongoDB. Wir verwenden Node.js mit Express und haben MongoDB und Mongoose für die DatenbankMongoose ist verbunden, kann aber keine Daten finden

Wir haben die MongoDB und Mongoose-Dokumentation untersucht und nach verwandten Fragen zu Stack Overflow gesucht, aber wir scheinen etwas zu verpassen.

Dies ist, was wir in app.js haben:

var mongo = require('mongodb'); 
var mongoose = require('mongoose'); 
var db = mongoose.connect('mongodb://localhost:27017/DBName'); 

Dieses

unsere usersModel.js ist
var db   = require('mongoose'); 
var Schema  = db.Schema; 

var userSchema = new Schema({ 
    u_id :      Number, 
    u_name :     { type: String, required: true }, 
    u_lastname :    String 
}); 

module.exports = db.model('user', userSchema); 

Und das ist, was wir in der Usercontroller verwenden:

var User  = require('../models/usersModel'); 

User.find({}, function(err, users) { 
    if (err) throw err; 

    console.log("Found users: ", users); 
}); 

Die Datei console.log (db.connection.readyState); sagt, es verbindet. Und die User.find() scheint nicht einen Fehler zu geben, sondern gibt stattdessen ein leeres Array/undefined.

Wir würden es wirklich schätzen, wenn uns jemand sagen könnte, was wir übersehen.

Vielen Dank im Voraus.

+0

Ist es ein leeres Array oder ist es nicht definiert? –

+0

Sind Ihre Dokumente in der 'user'-Sammlung? Mögliche Betrüger von https://stackoverflow.com/questions/14183611/mongoose-always-returning-an-empty-array-nodejs – JohnnyHK

Antwort

0

Bei: iuliu.net: Wir bekommen beide Fehler der erste war [] und der zweite ist undefiniert.

Bei JohnnyHK: Vielen Dank für Ihre Übermittlung, aber wir sind uns sicher, dass die Benutzersammlung in dieser Datenbank ist und die von uns gesuchten Eigenschaften existieren.

Bei Juuso: Vielen Dank für Ihr Feedback, aber in der Mongo-Terminal haben wir die Sammlung ausgegeben.

Jemand hat uns eine kritische Frage gestellt, ob wir das mit Mönch versuchten. Wir installiert Mönch und wir haben die Datenbank finden, Sammlung und bekam Ergebnis zurück. Wir sind immer noch nicht sicher, was das Problem mit Mongoose war, , aber mit Mönch funktioniert es.

Vielen Dank für Ihr Feedback und Zeit.

0

Ihr Anruf find() sieht gut für mich aus.

Sind Sie sicher, dass sich Benutzer in Ihrer Sammlung befinden? Wird beim Erstellen eines neuen Benutzers ein Fehler ausgegeben, den Sie nicht bemerkt haben? Vielleicht können Sie überprüfen, ob es in Ihrer Sammlung in der Tat Benutzer sind durch einen Terminal Aufspringen und Schreiben:

> mongo 
> use DBName 
> show collections 
> db.user.find() 

Und das wird für alle Benutzer zurück, die vorhanden ist.

Verwandte Themen