MongoDB多层数组嵌套问题

img


MongoDB数据库,通过js再kg下添加新内容,要是没有kg就新建kg数组,我查了好几篇文章了都没有查到可用的方法。希望能朋友给一点指点。

如果你想在 MongoDB 中的文档中嵌套一个多层级的数组,可以采用以下方法:


db.collection.updateOne(
   { _id: ObjectId("document_id") },
   {
     $push: {
       "kg": {
         "level1": {
           "level2": {
             "level3": {
               "name": "value"
             }
           }
         }
       }
     }
   }
)

以上代码中,collection是你要操作的集合名称,document_id是你要操作的文档的 _id 值,kg是你要在文档中添加的数组字段名称,level1、level2、level3是多层级的数组下标名称,name是数组元素的键名,value是数组元素的值。

如果你要新建一个数组,可以使用 $set 操作符,例如:


db.collection.updateOne(
   { _id: ObjectId("document_id") },
   {
     $set: {
       "kg": [
         {
           "level1": {
             "level2": {
               "level3": {
                 "name": "value"
               }
             }
           }
         }
       ]
     }
   }
)

以上代码中,$set 操作符用于替换一个已有字段的值,或者新建一个字段和值。在这个例子中,kg是新建的数组字段,数组中包含了多层级的对象元素。

希望以上方法对你有所帮助。