如何在mongodb的数组对象的嵌套数组中添加元素

Posted

技术标签:

【中文标题】如何在mongodb的数组对象的嵌套数组中添加元素【英文标题】:how to add element in nested array of objects of array in mongodb 【发布时间】:2022-01-03 15:43:32 【问题描述】:

此图片包含my data, 我使用 mongodb 作为数据库,使用 mongoose 进行连接 我想在主题数组和子主题数组中推送元素

【问题讨论】:

请将文档附加为 sn-p 并提供示例输入数据和预期输出。谢谢。 我有一个名为 Clas-s-room 的模型,它将包含图像中所示格式的数据,现在我想通过添加更多主题和子主题来更新这些数据 如果可以的话,将数据作为 JSON 文本,将预期输出作为 JSON 文本,这样我们就可以复制它们,编写查询并测试它。 【参考方案1】:

你可以对任务使用arrayFilters,例如:

这将在主题数组中推送新元素=test:1,其中元素为 sessionName:'Java':

 db.c.update(  name: "class 1"  ,  $push:  'sessions.$[x].topics':test:1    ,  arrayFilters : [ 'x.sessionName':'Java' ]   )

这将从 sessionName='Java' 的会话中将 element=1 推入 _id:1 的 subTopics 数组中:

 db.c.update(  name: "class 1"  ,  $push:  'sessions.$[x].topics.$[y].subTopic':1   ,  arrayFilters : [ 'x.sessionName':'Java' ,'y._id':1]   )

【讨论】:

为了删除它们我应该怎么做 对于删除,您可以使用 $pull 或 $unset 同样的方式

以上是关于如何在mongodb的数组对象的嵌套数组中添加元素的主要内容,如果未能解决你的问题,请参考以下文章

如何在 mongodb 聚合中展开嵌套对象数组?

如何在mongodb的嵌套数组中添加数据

mongodb 查询求助,嵌套数组里面查东西

如何遍历对象数组以便在 Mongodb 嵌套数组中推送数据

如何从 MongoDB 文档中的双重嵌套数组中删除元素。

MongoDB在对象数组中获取嵌套在对象数组中的单个对象