如何使用通过数据模型排序的下拉菜单值查询 Mongoose?
Posted
技术标签:
【中文标题】如何使用通过数据模型排序的下拉菜单值查询 Mongoose?【英文标题】:How to query Mongoose using drop down menu values that sort through data model? 【发布时间】:2017-08-19 08:27:04 【问题描述】:使用 mongoimport,我在 Mongoose 的帮助下向我的节点应用程序添加了一个包含 100,000 行数据的 csv 文件。在我的视图页面上,我能够访问所有 100,000 行并正确显示每条信息,但是我的应用程序的目的是允许用户选择该数据的参数并仅返回该 csv 文件的特定行符合该标准的。比如我的数据如下:
标题:姓名、州、学位 第 1 行:Gary,印第安纳州,本科 第 2 行:卡尔,佛罗里达州,博士 第 3 行:Tina,威斯康星州,大师赛 第 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 函数,但我应该将实际函数放在哪里?完全迷路了,非常感谢任何帮助。
【问题讨论】:
【参考方案1】: 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);
);
选择框更改时重新加载页面并将参数附加到请求网址
【讨论】:
以上是关于如何使用通过数据模型排序的下拉菜单值查询 Mongoose?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用Javascript根据先前的下拉值显示第二个下拉列表