gpt4 book ai didi

javascript - 如何使用 Mongoose 过滤器显示嵌套数组中的数据?

转载 作者:行者123 更新时间:2023-12-02 22:56:56 27 4
gpt4 key购买 nike

我不知道如何写标题,但我的问题是我在 MongoDB 中有一个嵌套数组数据,其结构如下:

[
{
employee: one,
data: [
{
tahun: 2020
},
{
tahun: 2022
}
],
somedata: ...,
..
},
{
employee: two,
data: [
{
tahun: 2019
},
{
tahun: 2022
}
]
},
somedata: ...,
..
]

我想显示所有员工,但只显示数据 tahun = 2022。所以应该是这样的:

[
{
employee: one,
data: [
{
tahun: 2022
}
]
},
somedata: ...,
..
{
employee: two,
data: [
{
tahun: 2022
}
]
},
somedata: ...,
..
]

我不知道如何用 Mongoose 函数.find()过滤它。到目前为止,我只能返回数据数组(已过滤),但不能返回整个 employees 数据,如下所示:

[
data: [
{
tahun: 2022
}
],
data: [
{
tahun: 2022
}
]
]

kocak

最佳答案

使用$elemMatch。来自 mongo 文档:

The $elemMatch operator matches documents that contain an array field with at least one element that matches all the specified query criteria.

{ <field>: { $elemMatch: { <query1>, <query2>, ... } } } 

If you specify only a single condition in the $elemMatch expression, you do not need to use $elemMatch.

就您而言,这可能是这样的:

db.employee.find(
{ data: { $elemMatch: { tahun: "2022" } } }
)

请注意,这里的员工是您的模特姓名。

关于javascript - 如何使用 Mongoose 过滤器显示嵌套数组中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57942064/

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