Я хочу создать структуру документов mongodb, как показано ниже.Добавление элемента в вспомогательный массив массива в MongoDB
data:[[{a:b},{b:c}],[{e:f}],[{f:g},{j:h},{i:l}]]
Эта структура позволит мне добавить новый вспомогательный элемент массива, 4-й один к существующему массиву данных, который содержит три вложенных массивов в приведенном выше примере, если это необходимо.
Я могу добавить новый элемент вспомогательного массива, используя следующую команду из оболочки mongodb.
db.xyz.update({'id':'A01'},{$push:{data:[]}},{})
Однако, я не могу найти решение для ввода данных в соответствующие массивы. Следующая команда не работает.
db.xyz.update({'id':'A01'},{$push:{data[0]:{$push:{a:b}}}},{})
И для получения первого элемента первого массива в данных я пытаюсь db.xyz.find ({ 'ID': 'А01'}, { data.0: {$ slice: 1}}), но не удалось его получить. Я получаю все элементы массива первого массива при попытке db.xyz.find ({id: 'A01'}, {data: {$ slice: 1}}), как получить первый элемент первого массива. –
@SatyaNarayana вы можете сделать это вот так: db.xyz.aggregate ([{$ match: {_id: "A01"}}, {$ project: {data: {$ arrayElemAt: [{$ arrayElemAt: ["$ data ", 0]}, 0]}}}]) – felix
Большое спасибо. –