我有一个数组
solvedProblemIds = [0,2]
我想查询在solveProblemIds数组中的requiredProblems数组中包含所有元素的文档。
例如,如果这些是我的文件:
{
id: 0,
name: "Problem 1",
points: 10,
description: "Problem 1 desc",
requiredProblems: []
},
{
id: 1,
name: "Problem 2",
points: 10,
description: "Problem 2 desc",
requiredProblems: [0]
},
{
id: 2,
name: "Problem 3",
points: 10,
description: "Problem 3 desc",
requiredProblems: [0]
},
{
id: 3,
name: "Problem 4",
points: 10,
description: "Problem 4 desc",
requiredProblems: [0, 2]
},
{
id: 4,
name: "Problem 5",
points: 10,
description: "Problem 5 desc",
requiredProblems: [0, 1, 2, 3]
}
查询应与ID为3,2,1和0的文档匹配。 我查看了$ in选择器,但它只需要一个元素在数组中,而不是全部。
答案 0 :(得分:1)
没有开箱即用的运营商可以确定子集。您可以进行聚合(我没有想过如何)或以下内容:
{ $not: { $elemMatch: { $nin: [0, 2] } } }
这是找到文件,使得不存在[0,2]中没有的元素。