2016-08-21 1 views
0

alles, was ich versuchen muss, eine Zahl in der Konsole zu drucken, die in meiner MongoDB gespeichert ist, aber wenn ich dies wie unter data.min_score holt es mir undefined in meiner Konsole. Ich habe ParseInt auch verwendet dann kommt Ausgabe NaNWert von Mongodb Anzeige in der Konsole oder Browser

nach meinem Plan, mein min_score Wert ist 10 meine Anforderung ist 10 in der Konsole oder Browser

1) zu drucken. Knoten js-Code

this.levelChange = function(req, res, next){ 

    try{ 

     var arr = []; 
     var query = {level_num:1}; 
     QuizLevel.find(query,function(err,data){ 

      arr.push(data.min_score); 
      console.log(arr); 
     }); 
    }catch(err){ 
     console.log("Error"); 
     return next(err); 
    } 
}; 

2) .level Schema

var LevelSchema = new Schema([ 
    { 
    _id:{type:String}, 
    age:{type:Number}, 
    level_num:{type:Number}, 
    min_score:{type:Number}, 
    max_questions:{type:Number} 
    } 

3). Konsolenausgang

undefined 

4). Dies ist meine Json Daten

{ 
    "age":5, 
    "level_num":1, 
    "min_score":10, 
    "max_questions":30 
    } 
    { 
    "age":5, 
    "level_num":2, 
    "min_score":12, 
    "max_questions":33 
    } 
    { 
    "age":5, 
    "level_num":3, 
    "min_score":15, 
    "max_questions":35 
    } 
+0

Mögliche Duplikate von [Mongo-Shell führen Abfrage aus Datei und zeigen Ergebnis] (http://StackOverflow.com/Questions/16326241/mongo-shell-execute-query-from-file-and-show-result) – apieceofbart

+2

Hallo Ritesh, willkommen in [so]. Wenn Sie Ihren Beitrag bearbeiten, stellen Sie sicher, dass Sie dasselbe Konto verwenden, das Sie für die Erstellung verwendet haben. Wenn Sie nicht auf Ihr Konto zugreifen können, finden Sie unter http://StackOverflow.com/Help/Reset-Password –

Antwort

0

Wenn Sie .find Funktion für ein Schema verwenden, geben Sie eine Reihe von Objekten, die die Abfrage in dem Parameter angegebenen übereinstimmen. Hier verwenden Sie -
arr.push(data.min_score);
Aber Daten sind ein Array. Versuchen Sie es mit
arr.push(data[0].min_score);
Sehen Sie, wenn es einen Unterschied macht und dies zu kommentieren.

+0

Danke für die Antwort Sir funktioniert es aber die Hälfte. Jetzt kommt die aktuelle Ausgabe 1 auf einer Konsole. Außerdem sende ich meine Level-JSON-Daten. –

+1

Brechen Sie es für mich auf. In dem Code, den Sie gepostet haben, fragen Sie die Datenbank nach Datensätzen ab, die level_num 1 haben, richtig? Das heißt, es sollte nur ein Dokument zurückgegeben werden, das ist der Datensatz mit min_score als 10. Ich bin nicht sicher, ob das der Fehler hier ist, aber machen Sie Ihr Abfrageobjekt das - 'var query = {'level_num': 1}' (Attribut in Anführungszeichen). Wenn das nicht funktioniert, führen Sie eine console.log (Daten) aus und veröffentlichen Sie das Ergebnis hier. – Zeokav

Verwandte Themen