从客户端控制器指定 Mongo 查询参数 (MEAN.JS)

2023-12-24

我正在使用 MongoDB、Angular、Express 和 Node(MEAN 堆栈)构建一个应用程序。

我使用 MEAN.JS 生成器来构建我的应用程序。

我将使用文章模块作为参考。

假设我的文章集合中有 7000 条记录,并且每条记录都有一个与其关联的日期。每次加载页面以查看表中的记录时,将所有 7000 条记录加载到内存中的效率很低,而且我发现因此造成了严重的性能损失。因此,我只想加载日期在(1 个月前)到(1 年后)范围内的记录并将其显示在表中。我目前可以通过以下方式做到这一点:

在我的articles.client.controller.js中:

$scope.find = function() {
        $articles = Articles.query();
};

...在我的articles.server.controller.js中:

var now = new Date();
var aYearFromNow = new Date(now.getTime() + 86400000*365); //add a year
var aMonthAgo = new Date(now.getTime() - 86400000*30); //subtract roughly a month

exports.list = function(req, res) { Article.find().where('date').lt(aYearFromNow).gt(aMonthAgo).sort('-created').populate('user', 'displayName').exec(function(err, articles) {
        if (err) {
            return res.send(400, {
                message: getErrorMessage(err)
            });
        } else {
            res.jsonp(articles);
        }
    });
};

问题是这不是一种动态的做事方式。换句话说,我希望用户能够指定他们想要查看多远和多远的内容。

如何在客户端视图中绑定到变量(例如“aYearFromNow”和“aMonthAgo”)以更改服务器控制器中的查询参数?


另一种方法是在查询方法中传递搜索参数,如下所示:

 $scope.searchart = function() {
    Articles.query({start:$scope.startDate, end:$scope.endDate}, function(articles) {
        $scope.articles = articles;
    });
};

然后在服务器端控制器,读取查询字符串参数,如下所示:

exports.searcharticle = function(req, res) {
    Article.find().where('date').gt(req.query['start']).lt(req.query['end']).exec(function(err, articles) {
        if (err) {
            res.render('error', {
                status: 500
            });
        } else {
            res.jsonp(articles);
        }
    });
};

这种方式不需要更多的路线或服务。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从客户端控制器指定 Mongo 查询参数 (MEAN.JS) 的相关文章

  • MongoDB 如何使用 $date 运算符进行查询?

    编辑 上下文 我正在使用 Talend ETL 工具 并在查询中使用 ISODate 或 Date 或 new Date 如下所示失败并出现错误 因此我需要解决方法 dt ISODate 2014 01 01 dt Date 2014 01
  • 如何检查变量是否是生成器函数? (例如函数*产量)[重复]

    这个问题在这里已经有答案了 检查函数是否是生成器的可靠方法是什么 例如 let fn function yield 100 if fn instanceof for let value in fn 我能想到的唯一方法是fn toString
  • 显示来自 mongodb 的所有数据并在 doT.js 模板引擎中渲染它

    我想从 mongodb 中提取数据并将其传递给视图 一切似乎都正常 但我没有看到所有 10000 条记录都显示出来 而是只看到了一条 我觉得我非常接近解决它 但我陷入困境 我正在使用node mongodb native express和d
  • 无法读取未定义错误的属性“匹配”

    我试图在 React JS 前端显示一些文本来代替个人资料图像 当它不可用时 基本上 我将当前客户名称传递给一个函数 该函数提取名称中所有单词的第一个字符 我能够仅显示名称 但是当我执行函数调用时 出现 无法读取未定义的属性 匹配 错误 并
  • 检测 SVGAnimatedString 的类名

    我在构建 SVG 地图时遇到问题 触发的功能 g 上的 onmouseover 不起作用 我当时用的 window onmouseover function e console log e target className 查看类名是否有问
  • 如何隐藏 URL 中的 ID

    我以前在 Stack Overflow 上见过这类问题 但没有一个真正有帮助 我也用谷歌搜索过 但没有骰子 我想知道如果用户单击选项卡本身是否可以隐藏 URL 中的 ID 这是网页 www planet nu dev new experia
  • 单击 div 中的图像时如何翻转该 Div?

    好吧 我对编写 Javascript 知之甚少 我可以对其进行一些编辑 并且涉足了 CSS3 动画 我将向您展示我正在努力实现的目标 然后在下面进行解释 网站布局将是这样的 https i stack imgur com RMb4R jpg
  • 根据复选框显示/隐藏输入字段[重复]

    这个问题在这里已经有答案了 如果单击该复选框 它将显示一个输入字段 到目前为止它正在工作 但如果未选中该复选框 它应该隐藏它 我该怎么做 div class checkbox div
  • 查找 JavaScript 中函数参数的数量[重复]

    这个问题在这里已经有答案了 可能的重复 获取函数的元数 https stackoverflow com questions 4848149 get a functions arity 假设我有 function a x function b
  • EmberJS:如何为 ember-data RESTAdapter 中的模型提供特定的 URL?

    问题一 如果我有一个名为 Company 的余烬数据模型 我如何告诉它点击 businesses and businesses id而是检索记录 有没有办法指定给定模型的 url 更好的是 像 BackboneJS 一样 我可以在运行时计算
  • jquery 中 DOM 元素的手动垃圾回收是否可以提高浏览器性能?

    在性能范围内 删除不再需要的元素是否有意义 或者浏览器是否对代码中未进一步引用的 dom 元素执行自动垃圾收集 some element fadeOut 1000 function el el remove lt does this mak
  • 如何使用 javascript 禁用组合键?

    I would like to disable view source shortcut key for IE using JavaScript To disable Ctrl C I am using the following func
  • Inno Setup安装先决条件[重复]

    这个问题在这里已经有答案了 我正在通过 Inno Setup 创建一个安装程序 我看到很多关于如何检测先决条件是否存在的代码示例 但没有任何关于当我找不到先决条件时如何实际安装先决条件的代码示例 我确信它非常简单 但是我该如何安装先决条件呢
  • 原型链、构造函数、继承

    我正在玩 javascript 原型 我是新手 所以我有一个小问题 我正在用这个article http mckoss com jscript object htm作为指导 我已经定义了产品和书籍 目的是什么Book prototype c
  • jQuery 更改为隐藏字段后触发重力表单中的表单更新

    简而言之 是否有 JavaScript 函数或挂钩来触发重力形式的更新 以便执行条件逻辑 原问题 我正在使用重力形式 并且创建了一个 变化时 事件 gform 1 find gfield date dropdown month select
  • Kotlin JavaScript 到 TypeScript 定义文件

    我已经找到了ts2kt 库 https github com Kotlin ts2kt这将从任意位置创建 Kotlin 头文件 d ts文件 但是 我想朝相反的方向走 我想构建一个可以编译为 JavaScript 的 Kotlin 库 但我
  • “x modulo y”的结果是什么?

    引用 ECMAScript 规范第 5 2 节 符号 x modulo y y 必须是有限且非零 计算 值 k 与 y 具有相同的符号 或零 使得 abs k 因此 如果 y 为正 则 x modulo y 的结果 k 为正 无论 x 的符
  • Nodejs 解码 base64 并使用流将它们保存到文件中

    在我的node js应用程序中 我使用以下代码行解码base64编码的图像 const fileDataDecoded Buffer from base64EncodedfileData base64 到目前为止 我可以使用以下代码编写一个
  • jQuery 倒计时插件 - 只显示非零周期

    我正在使用 jQuery 倒计时插件编写倒计时 我只希望它显示活动 非零 周期 例如代替 剩余时间 0 天 0 小时 13 分 20 秒 它应该只显示 13 分 20 秒 我的代码是 countdown countdown expiryUr
  • Javascript 最佳实践,为什么使用逗号来链接函数/变量声明?

    我一直在为 jQuery jQueryLog 开发一个插件 以允许调试链选择器和返回值 如果你想检查一下 你可以这样做here http www jquerylog com 这已经是第二个版本了 第一个版本实际上是经过编辑的 jQuery

随机推荐

  • macOS 上使用 Ninja 的 CMake GUI

    我正在尝试使用 CMake GUI 创建 Ninja 构建文件 我尝试使用 Brew 手动在 macOS 上安装 Ninja 两次我都确保 ninja 在 PATH 上可用 但 CMake GUI 始终无法找到 ninja CMake 错误
  • 使用SQL中的distinct函数

    我正在运行一个 SQL 查询 我想知道的是 有没有一种方法可以选择表中其中一列的值不同的行 当我使用 unique 函数时 它返回所有不同的行 所以 select distinct teacher from class etc 这工作正常
  • 尝试重定向时看到“无法修改标头信息”错误

    我有基本的 PHPmail 该脚本通过电子邮件向用户发送他们刚刚提交的表单的详细信息 PHP 可以很好地将所有数据插入数据库 但是当我想在数据处理完成后重定向它们时 就会出现问题 我目前正在使用 mail email subject mes
  • 代码从 Python 2.6 更改为 3.x

    我想得到pywbem http pywbem svn sourceforge net 在 Python 3 2 中工作 在 2 6 中工作正常 但在 mof compiler py 中的这部分代码上构建失败 File pywbem 0 7
  • Postgresql 获取一列或大表中一组唯一值的最快方法

    我在 Postgresql 数据库中有一个不断增长的 可能非常大的表 其中包含来自不同 设备 的不同 通道 的 数据 例如 Table data id PK device id FK gt device channel id FK gt c
  • 迁移出 AppEngine

    我有一个在 AppEngine 上运行的应用程序 每天使用大约 50 个 CPU 小时 大部分时间都花在等待数据存储上 我正在考虑将其从 AppEngine 移至 Rackspace 云服务器之类的地方 因为我认为如果我可以将部分工作卸载到
  • iOS - 如何检查模式视图是否存在

    有没有办法检查模式视图是否存在 我想仅在存在模式视图时运行方法 另外 如果我有多个模态视图 有没有办法检查是否存在某个模态视图 我使用以下代码来呈现和关闭模态视图 self presentModalViewController myModa
  • 如何从 QML 访问 C++ 枚举?

    class StyleClass public QObject public typedef enum STYLE RADIAL STYLE ENVELOPE STYLE FILLED Style Style m style h文件中有上述
  • 如何在 PHP 5.2.8 中比较两个 DateTime 对象?

    看了一下PHP文档 有以下两种方法DateTime对象似乎都可以解决我的问题 日期时间 差异 http au php net manual en datetime diff php 获取差异并使用它来确定哪个更古老 日期时间 获取时间戳 h
  • 用于导航到变量类的 Visual Studio 快捷方式

    Usually it is a simply as clicking on F12 on the declaration class type of a variable 然而 随着使用量的增加var关键字 我想知道 Visual Stud
  • 错误:为 h5py 构建轮子失败无法构建 h5py 错误:无法为 h5py 构建轮子,这是安装 pyproject.toml-basedprojects 所必需的

    当我运行以下命令来安装tensorflow时 出现此错误 python3 m pip install tensorflow macos ERROR Failed building wheel for h5py Failed to build
  • 小胡子模板不会在表 tbody 内呈现

    为什么相同的 JSON 对象代码会生成输出ul元素 但不带有table tag 我的小胡子模板如下 div h3 name h3 ul students li name age li students ul div div table th
  • PHP 在路径中包含变量

    因此 我们构建的网站必须从本地开发服务器移植到测试服务器 然后移植到实时服务器 为此我们创建了一个变量 当我们将网站从服务器移动到下一个服务器时 想法是简单地更改 path 定义以适应新的开发服务器 目前 当我们调用包含时 我们在每个页面上
  • 在 CSS 中使用相对大小而不是固定大小

    我想使用相对大小而不是固定大小 我想用它们 我的CSS是 body font 10px wrap font 1 2em wrap ul li padding left 2em 的价值是什么li的内边距以 px 为单位 我猜它是 2 0 10
  • Java Transformer 如何忽略名称空间

    我必须将 XML 转换为 XHTML 但 XML 定义了命名空间xmlns http www lotus com dxl 它从未在整个 XML 中使用过 因此解析器不会解析任何内容 有没有办法忽略命名空间 我正在使用 Oracle java
  • 使用 Web Api 验证 .NET MVC 应用程序

    我有一个基于 SPA VS 2013 模板的 Web Api 2 项目 我在该 Api 中配置了不记名令牌身份验证 我还有一个单独的 MVC 5 项目 我想使用该 Web Api 进行身份验证 那可能吗 如何 到目前为止我做了什么 在我的
  • Eclipse 中没有服务器;尝试安装 Tomcat

    我正在尝试在 Eclipse 中安装 Tomcat 但无法显示服务器选项卡 当我去窗口 gt 显示视图 gt 其他并输入 服务器 我没有得到任何结果 当我去文件 gt 新建 gt 其他并输入 服务器 我也什么也得不到 有谁知道我的服务器出了
  • 如何使用java api知道jenkins构建执行器是否空闲

    我想通过使用 java jenkins API 知道 jenkins 中的构建执行器是否空闲 空闲或任何作业正在主节点中运行 而我的要求是这样的 如果任何执行者有空 我必须触发詹金斯工作 否则我会等到他们可用 为此我必须使用 Jenkins
  • 使用nextjs和react-jss时className不匹配

    我将 nextjs 与 typescript 和 React jss 一起使用 我收到错误 Warning Prop className did not match Server mobileNavToggle 0 2 10 Client
  • 从客户端控制器指定 Mongo 查询参数 (MEAN.JS)

    我正在使用 MongoDB Angular Express 和 Node MEAN 堆栈 构建一个应用程序 我使用 MEAN JS 生成器来构建我的应用程序 我将使用文章模块作为参考 假设我的文章集合中有 7000 条记录 并且每条记录都有