如何在Angular / Express / MongoDB中使用过滤器创建搜索?

时间:2017-04-07 15:16:25

标签: mongodb angular express

我正在尝试为我的Angular网站模仿this example右侧边栏的功能。

我不知道这叫什么,甚至不知道如何在前端或后端进行操作!

我的假设:

  1. 创建一个直接来自数据库的值的表单,只显示所需的参数(即db.collection.find(query,{parameter:1}),每次用户修改时都会调用该参数此外,结果也会在选择时更新(我有超过100MB的文件,返回所有文件会很麻烦,我怎样才能限制返回的文件数量,比如20或50(用户输入) ?)并对其进行分页(返回1000份文件/每页50份= 20页'页')

  2. 选中的每个输入,{'字段' :value}将被返回 - 但我不确定如何控制空值(即如果用户没有选择燃料类型或传输范围会怎么样?)

  3. 如何正确设计此类功能?

1 个答案:

答案 0 :(得分:1)

1)在您的查询中,使用限制语句:

    var options = { "limit": 20 }
    collection.find({}, options).toArray(...);

2)您可以验证用户空输入(例如。with express-validator):

req.checkBody('postparam', 'Invalid postparam').notEmpty()
req.getValidationResult().then(function(result) {
    if (!result.isEmpty()) {
      res.status(400).send('There have been validation errors: ' + util.inspect(result.array()));
      return;
}

并根据结果选择默认值/传递错误/渲染询问用户页面