#arrays #database #mongodb #mongoose #nested
Вопрос:
Это изображение содержит мои данные ,
я использую mongodb в качестве базы данных и мангуста для подключения
, я хочу вставить элементы в массив тем и в массив подтем
Комментарии:
1. Пожалуйста, приложите документ в виде фрагмента и предоставьте примеры входных данных и ожидаемых выходных данных. Спасибо.
2. У меня есть модель с именем Classroom , которая будет содержать данные в формате, показанном на рисунке, теперь я хочу обновить эти данные, добавив дополнительные темы и подтемы
3. если вы можете, предоставьте данные в виде текста JSON и ожидаемый вывод в виде текста JSON, чтобы мы могли скопировать их, написать запрос и протестировать его.
Ответ №1:
Вы можете использовать фильтры массива для этой задачи , например:
Это приведет к появлению нового элемента={test:1} в массиве тем с элементом с именем сеанса:’Java’:
db.c.update( { name: "class 1" } , { $push: { 'sessions.$[x].topics':{test:1 } } } , { arrayFilters : [{ 'x.sessionName':'Java' }] } )
Это приведет к перемещению элемента=1 в массив подтем с _id:1 из сеансов с именем сеанса=’Java’:
db.c.update( { name: "class 1" } , { $push: { 'sessions.$[x].topics.$[y].subTopic':1 } } , { arrayFilters : [{ 'x.sessionName':'Java' },{'y._id':1}] } )
Комментарии:
1. и для их удаления, что я должен сделать
2. Для удаления вы можете использовать $pull или $unset таким же образом