集約フレームワークを使用できます:
db.test.aggregate([
{ $unwind: '$arr' },
{ $limit: 1 },
{ $project: { _id: 0, arr: 1 } },
{ $unwind: '$arr' },
{ $skip: 1 },
{ $limit: 1 }
])
返品:
{ "arr": 22 }
編集: 元のポスターは、彼のニーズに合わせて私のソリューションを変更し、次のことを考え出しました。
db.test.aggregate([
{ $match: { name:"Olivia" } },
{ $project: { _id: 0,arr: 1 } },
{ $unwind: '$arr' },
{ $skip: 1 },
{ $limit:1 },
{ $unwind: "$arr" },
{ $skip: 2 },
{ $limit: 1 }
])
このクエリの結果は{ arr: 77 }
になります OPによって提供される拡張データを前提としています。配列階層で適切な要素を選択するには、$skipと$limitが必要であることに注意してください。