如何在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的数组对象的嵌套数组中添加元素的主要内容,如果未能解决你的问题,请参考以下文章