2017-08-15 16 views
0

Nodejsを使って、Express私は整数としてデータベースにデータを保存し、Meanを探します。現在、データ(名前とキャンパスの両方)はStringとして格納されています。平均値を見つけるために$ avgを使用すると、dbはNULL値を返します。データベースのテーブルは、名前とキャンパスです。名前は文字列でなければならず、キャンパスは整数でなければなりません。 $ avgは同じ名前のCampusで実行されます。 これは、これは私のindex.ejsファイルである私のserver.jsファイルNodeJSで文字列ではなく整数としてMongoDBにデータを格納する方法は?

const express = require('express'); 
var path = require('path'); 

const bodyParser = require('body-parser') 
const MongoClient = require('mongodb').MongoClient 


MongoClient.connect('mongodb://dbname:[email protected]:11111/rank', (err, database) => { 
    if (err) return console.log(err) 
    db = database 
    app.listen(8080,() => { 
    console.log('listening on 8080') 
    }) 
}) 

const app = express(); 
app.set('view engine', 'ejs') 
app.use(express.static(path.join(__dirname, 'public'))); 



app.get('/', (req, res) => { 
    db.collection('colleges').find().toArray((err, result) => { 
    if (err) return console.log(err) 
    // renders index.ejs 
    res.render('index.ejs', {colleges: result}) 
    }) 
}) 

app.get('/answers', (req, res) => { 
    db.collection('colleges').find().toArray((err, result) => { 
    if (err) return console.log(err) 
    // renders index.ejs 
    res.render('index.ejs', {colleges: result}) 
    }) 
}) 


app.use(bodyParser.urlencoded({extender: true})) 


app.post('/colleges', (req, res) =>{ 
    db.collection('colleges').save(req.body, (err, result) =>{ 
     if (err) return console.log(err) 

     console.log('saved to database') 
     console.log(JSON.stringify(req.body)) 

     res.redirect('/') 
    }) 
}) 

平均

db.colleges.aggregate([ 
      { $match: { college: "RVCE"}}, 
      { $group: {_id:"campus", total: {$avg: "$campus"}}} 
      ]) 
+0

ここでは、データを格納するコード? '$ avg'クエリを実行するコードはどこですか? – pedromss

答えて

0

を計算するために、このフォーム

<form action="/colleges" method="POST"> 
    <input type="text" placeholder="name" name="name"> 
    <input type="number" placeholder="campus" name="campus"> 
    <button type="submit">Submit</button> 
</form> 

コードを持っているあなたは、単に私が推測するこれを行うことができます、

app.post('/colleges', (req, res) =>{ 
req.body.campus = parseInt(req.body.campus); 
db.collection('colleges').save(req.body, (err, result) =>{ 
    if (err) return console.log(err) 

    console.log('saved to database') 
    console.log(JSON.stringify(req.body)) 

    res.redirect('/') 
}); 
関連する問題