【发布时间】:2017-12-02 18:05:06
【问题描述】:
我想从嵌套数组中选择第一项,而不获取整个文档。
架构/模型
假设我有一个这样的架构:
const parentSchema = mongoose.Schema({
name: String,
children: []
});
const grandparentSchema = mongoose.Schema({
name: String,
children: [parentSchema]
})
这将转化为这个示例实例:
{
name: 'Grandparent Foo',
children: [
{
name: 'Parent Foo',
children: ['Child Foo', 'Child Bar', 'Child Baz']
}
]
}
问题
我想得到'Parent Foo' 的第一个孩子,所以归结为我应该回到'Child Foo'
注意事项
-
如您所见,孙子是普通的
李>Strings,而不是Documents 本身(与父相反),所以我无法使用点符号选择它们。 我不想返回整个文档并在代码中对其进行过滤。我只想解决第一个孙子数组,因为孙子数组(
'Parent Foo'的children数组)可能包含数百万个条目。我需要这个,因为我想
$pop第一个孙子并返回它。为此,我计划先获取项目,然后$pop将其关闭,因此我问这个问题
【问题讨论】:
标签: javascript mongodb mongoose mongodb-query aggregation-framework