奇怪的是,我无法找到这个非常简单的问题的答案,而且我无法找到一种方法来自己完成这个文档。
这是一个示例架构
{
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
,但它不起作用,我正在
未定义的“测试”方法。
答案 0 :(得分:0)
你必须使用投影。你可以这样做:
Collection.find({_id: 0}, { Test: { $elemMatch: { foo : 0 } } } )
这将为您提供Test
数组,但只有一个元素,即符合条件的第一个元素foo : 1
要仅获取Test
数组而不是整个文档,请使用:
Collection.find({_id: 0}, { Test: 1, _id: 0 } )
另外
您可以找到有关此here
的更多信息希望这有帮助。