【发布时间】:2021-10-02 01:25:25
【问题描述】:
我有一个练习集:
[
{
"name": "Push Ups",
"muscleGroups": ["Chest", "Shoulders", "Abs", "Biceps"]
},
{
"name": "Sit Ups",
"muscleGroups": ["Abs"]
},
{
"name": "Pull Ups",
"muscleGroups": ["Abs", "Biceps", "Back"]
}
]
和inputMuscleGroups 的输入数组。我正在尝试将练习过滤到文档的muscleGroups 数组包含inputMuscleGroups 的每个元素的位置。
对于inputMuscleGroups = ["Abs"],每个文档都会返回。
对于inputMuscleGroups = ["Abs", "Biceps"],输出为:
[
{
"name": "Push Ups",
"muscleGroups": ["Chest", "Shoulders", "Abs", "Biceps"]
},
{
"name": "Pull Ups",
"muscleGroups": ["Abs", "Biceps", "Back"]
}
]
对于inputMuscleGroups = ["Abs", "Shoulders", "Chest"],输出为:
[
{
"name": "Push Ups",
"muscleGroups": ["Chest", "Shoulders", "Abs", "Biceps"]
}
]
我玩过$in,但似乎只有在任何输入数组与任何文档数组匹配时才会返回 true。
理想情况下,我希望在 .find() 方法中执行此操作,而不是在 .aggregate() 方法中。
【问题讨论】:
标签: arrays mongodb mongoose mongodb-query