2016-07-14 7 views
0

Hallo alles, was ich brauche, um zwei Feldwerte hinzufügen {type: Anzahl} von einer Sammlung von MongoDB Knoten js mit und das Ergebnis in der gleichen Sammlung von MongoDBHinzufügen mongodb Datenwert abgelegt unter Verwendung von Knoten js

Der erste Knoten fragt den Datenwert von MongoDB innerhalb meines Controllers ab. 2. versucht, den abgerufenen Wert hinzuzufügen. 3. Speichern Sie das Ergebnis in der gleichen MongoDB-Sammlung mit dem Knoten js.

1). Knoten js

var levelScoreQuiz = require('../models/levelscoreSchema.js'); 
try{ 


     var queryObj = {}; 
     var projection = '-id child.quiz_level.score_pre'; 
     var projection2 = '-id child.quiz_level.score_curr'; 


     var a = levelScoreQuiz.findOne(queryObj,projection); 
     var b = levelScoreQuiz.findOne(queryObj,projection2); 
     //console.log(a); 
     //console.log(b); 
     var add = a + b; 
     //console.log(add); 
     res.send(add); 


     var userObj = { 

     level_pre:req.params.add 


     }; 

     var user = new levelScoreQuiz(userObj); 
     user.save(function(err, result){ 
      if (err) { 
       console.log('Error While Saving the reuslt ' +err)} 
     else{ 
      //console.log("User score saved successfully"); 
      console.log("User Previous score saved successfully"); 
      res.json(result); 
     } 
     }); 

    }catch(err){ 
     console.log('Error While Saving the reuslt ' +err); 
     return next(err); 
    } 

2). MongoDB Schema

var userScore = new Schema({ 

child: { 

    quiz_level:{ 
     current_level:{type:Number}, 

      score_pre:{type:Number}, 
      score_curr:{type:Number} 
    } 
    } 

}); 

3). Ergebnis: es zeigt mir Objekt in meinem Browser

"[object Object][object Object]" 
+0

Was genau möchten Sie hinzufügen? score_pre und score_curr? Sie müssen sie aus a und b extrahieren. Sie sind Dokumente. –

+0

Sowohl score_pre als auch score_curr in eine Variable und speichern dieses Ergebnis dann in MongoDB innerhalb derselben Sammlung. –

+0

In welchem ​​Feld möchten Sie es speichern? –

Antwort

0
var levelScoreQuiz = require('../models/levelscoreSchema.js'); 
try{ 


     var queryObj = {}; 
     var projection = {id: 0, 'child.quiz_level.score_pre': 1}; 
     var projection2 = {id: 0, 'child.quiz_level.score_curr': 1}; 


     var a = levelScoreQuiz.findOne(queryObj,projection); 
     var b = levelScoreQuiz.findOne(queryObj,projection2); 
     //console.log(a); 
     //console.log(b); 
     var add = a.child.quiz_level.score_pre + 
        b.child.quiz_level.score_curr; 
     //console.log(add); 
     res.send(add); 


     var userObj = { 

     child: {quiz_level: { score_pre: req.params.add}} 


     }; 

     var user = new levelScoreQuiz(userObj); 
     user.save(function(err, result){ 
      if (err) { 
       console.log('Error While Saving the reuslt ' +err)} 
     else{ 
      //console.log("User score saved successfully"); 
      console.log("User Previous score saved successfully"); 
      res.json(result); 
     } 
     }); 

    }catch(err){ 
     console.log('Error While Saving the reuslt ' +err); 
     return next(err); 
    } 
+0

Hallo Amiram 1. Danke für die Lösung –

+0

, aber es zeigt mir Fehlermeldung {"message": "Kann nicht lesen Eigenschaft 'quiz_level' von undefined"} –

+0

Ich denke, Ihre Projektion ist falsch. Fixing es –

Verwandte Themen