gpt4 book ai didi

javascript - NodeJS MongoDB 动态查询

转载 作者:可可西里 更新时间:2023-11-01 10:16:04 25 4
gpt4 key购买 nike

我有一个运行 express 的 NodeJS 服务器,在“/api/jobs/”有一个 get 方法。调用时,我从 url 获取一些查询字符串参数,它们对 MongoDB 数据库进行查询以获取工作。

Example Url: '/api/jobs/?Groups=1,2&Statuses=3,4'

我试图构建的 MongoDB 查询是这样的:

{ $or: [{"Group.Id" : 1}, {"Group.Id" : 2}], $or: [{"Status.Id": 3}, {"Status.Id": 4}]}

如果我直接对数据库运行它,我会得到我需要的结果,但我想不出用 JavaScript 动态构建查询的方法。我所做的任何尝试都会给我这样的对象,因为 $or 属性只能在适当的 JSON 对象中存在一次。

{$or : [{"Group.Id" : 1}, {"Group.Id" : 2}]}

关于如何使用 JavaScript 或通过 MongoDB Node API 执行此操作的任何想法?

最佳答案

首先获取查询属性,这将是字符串:

const groupString = req.query.Groups; // === '1,2'
const statusString = req.query.Statuses; // === '3,4'

以逗号分隔并解析为整数:

const groupNums = groupString.split(',').map(parseInt); // === [1, 2]
const statusNums = statusString.split(',').map(parseInt); // === [3, 4]

然后搜索任何组 ID。您的查询应如下所示:

const query = {"Group.Id": { $in: groupNums }, "Status.Id": { $in: statusNums } };

对状态 ID 执行相同的操作。

关于javascript - NodeJS MongoDB 动态查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43068191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com