如何使用对数据模型进行排序的下拉菜单值查询猫鼬?



使用 mongoimport,我在 Mongoose 的帮助下向我的节点应用程序添加了一个包含 100,000 行数据的 csv 文件。在我的视图页面上,我能够访问所有 100,000 行并正确显示每条信息,但是我的应用程序的目的是允许用户选择该数据的参数,并仅返回该 csv 文件中满足该条件的特定行。例如,我的数据如下:

标题:姓名、州、学位 第 1 排:加里,印第安纳州,本科生 第 2 排:佛罗里达州卡尔博士 第 3 排:威斯康星州蒂娜,大师赛 第 4 排:马特,佛罗里达州,大师赛

我的选择选项如下所示:

<div class="select_menu">
<label>Select State</label>
<select name="select_state" id="select_state">
<option value="IN">Indiana</option>
<option value="FL">Florida</option>
<option value="WI">Wisonsin</option>
<option value="etc">ETC</option>
</select>
<label>Select Degree</label>
<select name="select_degree" id="select_degree">
<option value="PhD">PhD only</option>
<option value="Masters">PhD and Masters</option>
<option value="Undergraduate">PhD, Masters, and Undergraduate</option>
</select>
</div>

这将是我的查询参数:

var selectState = document.getElementByID('select_state')
var selectDegree = document.getElementByID('select_degree')
var query = Data.find({ 
STATE: selectState.value, 
DEGREE: selectDegree.value
}).limit(10);

数据(整个CSV文件)通过data.controller推送到data.ejs视图页面,该页面是:

const Data = require('../models/data');

module.exports = {
showDatas: showDatas
}
function showDatas(req, res) {
Data.find({}, (err, datas) => {
console.log(datas[0]);
res.render('pages/data', {datas: datas});
});
}

我只是不知道如何将上述查询应用于数据模型,一旦它被传递到视图页面。我知道我可以使用jQuery并在选择下拉列表旁边的"提交"按钮上使用onclick函数,但是我应该在哪里放置实际函数?完全迷路了,任何帮助都非常感谢。

const Data = require('../models/data');

module.exports = {
showDatas: showDatas
}

function showDatas(req, res) {
//query will catch the params url after ? 
//params will catch the body params? 
var queryJson={};
if(req.query.selectState){
queryJson.STATE=req.query.selectState;
}

if(req.query.selectDegree){
queryJson.DEGREE=req.query.selectDegree;
}
Data.find(queryJson, (err, datas) => {
console.log(datas[0]);
res.render('pages/data', {datas: datas});
});
}

选择框时重新加载页面并附加参数以请求网址

最新更新