如何仅填充子文档数组中的第一个元素

Edg*_*rka 3 mongoose mongodb

我有 myDocument 架构:

{
  name: {type: String},
  data:  [{type: Schema.Types.ObjectId, ref: 'myData'}],
}
Run Code Online (Sandbox Code Playgroud)

我的目标是只填充数据数组中的第一个元素。

myDocument.find({}).populate('data').exec();
Run Code Online (Sandbox Code Playgroud)

我只想从 myData 数组 (myDocument.data[0]) 中选择第一个元素。

如果数组是 emty ,则 myDocument.data.length === 1 或 0

Edg*_*rka 6

我发现填充options参数允许limit为填充数组设置。

myDocument.find({}).populate({path: 'data', options: {limit: 1} }).exec();
Run Code Online (Sandbox Code Playgroud)