Mongodb 是否有仅当阵列为';你没有空吗?

Mongodb 是否有仅当阵列为';你没有空吗?,mongodb,Mongodb,我正在尝试使用“展开”运行查询。(汇总) 问题是,当我在一个空数组上运行unwind时,我得到的结果是空的。 我知道这是一个问题: 如果数组在输入文档中包含空数组([]),则 管道忽略输入文档,并且不会为输出文档 输入文件。(来自MongoDB文档) 是否有一个选项,仅当我尝试展开的阵列不为空时,我才能运行“展开” 编辑: 编辑2: { name: ‘name1’ sum1: 2 array1: [ { id: 111

我正在尝试使用“展开”运行查询。(汇总) 问题是,当我在一个空数组上运行unwind时,我得到的结果是空的。 我知道这是一个问题:

如果数组在输入文档中包含空数组([]),则 管道忽略输入文档,并且不会为输出文档 输入文件。(来自MongoDB文档)

是否有一个选项,仅当我尝试展开的阵列不为空时,我才能运行“展开”

编辑:

编辑2:

{
    name: ‘name1’
    sum1: 2
    array1: 
    [
        {
            id: 111
            name: 222
        }   
    ]
    array2: []
    array3: []
}

{
    name: ‘name1’
    sum1: 10
    array1: 
    [
        {
            id: 122
            name: 333
        }
    ]
    array2: []
    array3: []
}
结果:

{
    name: ‘name1’
    sum1: 12
    array1:
    [
        {
            id: 111
            name: 222
        }
        {
            id: 122
            name: 333
        }
    ]
    array2: []
    array3: []
}
tnx:)

您可以在之前尝试一个运算符,该运算符使用数组中至少存在索引为0的第一个元素(使用)的逻辑来过滤具有至少包含一个元素的数组的文档:


为什么不简单地检查数组是否为空

if(myArray.length === 0) { /* call your code here */ }

这是一个问题:我有3个数组(我想解开它们)。但并非所有文档都具有此数组。因此,如果某些文档不包含此空数组,我仍然希望获取该文档,但不希望释放数组。您能否编辑您的问题,以使用一些示例文档和预期结果重现该问题?@DorAtias感谢您更新问题,是否可以包含一些示例文档和预期输出?我在mongo查询中添加了两个文档和预期结果。我不确定是否可以将其添加到查询中。第二个问题是在数组为空时添加默认项。如果我使用默认项展开到数组,我将不会得到我想要的结果。
{ $match: { "array_field.0": { $exists: true } } };
if(myArray.length === 0) { /* call your code here */ }