0
使用Nodejs,Express我想以整數形式將數據存儲到數據庫中,並找到Mean。目前,數據(名稱和校園)均以字符串形式存儲,當使用$ avg查找平均值時,數據庫返回空值。數據庫中的表格是名稱和校園。名稱必須是String和Campus必須是整數。 $ avg在校園內使用相同名稱執行。 這是我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('/')
})
})
這是我index.ejs文件有這種形式
<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>
代碼來計算平均
db.colleges.aggregate([
{ $match: { college: "RVCE"}},
{ $group: {_id:"campus", total: {$avg: "$campus"}}}
])
哪裏是存儲數據的代碼?執行'$ avg'查詢的代碼在哪裏? – pedromss