gpt4 book ai didi

javascript - 使用传递的 MongoDB 查询定位数组中的第一个对象

转载 作者:行者123 更新时间:2023-11-30 15:01:26 25 4
gpt4 key购买 nike

我正在使用通过 POST 请求传递的这个 mongoDB 查询来返回数据子集:

body: any = {"services.history": { "$elemMatch": { "status": "orientation", "enrolled" : true } }};

这按预期工作。但是,我们正在更改我们的实现以针对状态并检查它是否是“历史”数组中的第一项。我如何通过修改上述查询来完成此操作?

我认为这可能有效,但行不通:

body: any = {"services.history[0]": { "$elemMatch": { "status": "orientation", "enrolled" : true } }};

我也试过点符号,还是不行:

body: any = {"services.history.0": { "$elemMatch": { "status": "orientation", "enrolled" : true } }};

如何在 POST 请求中使用此类查询仅将数组中的第一项作为目标?换句话说,如果 elemMatch 匹配并且它是“history”数组中的第一项,我只希望它返回 true。我只需要对 history 数组中的第一个对象运行此检查,因为我知道这将是后端数组中最新(最相关)的数据对象。

我正在查询的数据如下所示:

  "history": [
{
"status": "oritentation",
"endDate": "2012-09-26T06:00:00.000Z",
"startDate": "2011-03-26T06:00:00.000Z",
"_id": "1259c4d250502sa434788",
"enrolled": true,
}
]

最佳答案

如果您的数组的子文档中没有其他字段,您可以这样做:

body: any = {"services.history.0": { "status": "orientation", "enrolled" : true } }

如果您确实有其他字段,您可以改为这样做:

body: any = { "services.history.0.status": "orientation", "services.history.0.enrolled": true }

关于javascript - 使用传递的 MongoDB 查询定位数组中的第一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46477439/

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