数组中所有子文档的列表

时间:2016-03-02 09:47:10

标签: mongodb mongodb-query

奇怪的是,我无法找到这个非常简单的问题的答案,而且我无法找到一种方法来自己完成这个文档。

这是一个示例架构

{
    Test : [
        {
           foo:0,fighter:[]
        },
        {
           foo:1,fighter:[]
        },
        {
           food:2,fighter:[]
        }
    ]
}

我希望能够检索Test

中的所有文件

我发现要检索您可以执行的第一个fighter的内容:

Collection.find({_id: 0 , 'Test.foo': 0})

但是如何获得整个Test数组呢?还是整个fighter数组?

{ foo: 0, fighter: [ "john", "fitz", "gerald" ] }
{ foo: 1, fighter: [] } 
{ food: 2, fighter: [] }

或仅仅是整个figther(foo 0)内容

"john", "fitz", "gerald"

我发现的唯一一件事就是Collection.findOne({_id: id}).Test,但它不起作用,我正在

  

未定义的“测试”方法。

1 个答案:

答案 0 :(得分:0)

你必须使用投影。你可以这样做:

Collection.find({_id: 0}, { Test: { $elemMatch: { foo : 0 } } } )

这将为您提供Test数组,但只有一个元素,即符合条件的第一个元素foo : 1

要仅获取Test数组而不是整个文档,请使用:

Collection.find({_id: 0}, { Test: 1, _id: 0 } )

另外

您可以找到有关此here

的更多信息

希望这有帮助。