Можете да използвате рамката за агрегиране:
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 }
предвид разширените данни, предоставени от ОП. Имайте предвид, че $skip и $limit са необходими, за да изберете правилните елементи в йерархията на масива.