【问题标题】:How to insert in nested Array in mongodb如何在mongodb的嵌套数组中插入
【发布时间】:2018-03-11 16:05:28
【问题描述】:

我在Mongodb $push in nested array看到这个

播放列表.$.music 代表什么。??

db.collection.update(
    { "_id": ID, "playlists._id": "58"},
    { "$push": 
        {"playlists.$.musics": 
            {
                "name": "test name",
                "duration": "4.00"
            }
        }
    }
)

我的收藏是这样的。

"book" : [
        {
                "name" : "rupesh",
                "brand" : [
                        {
                                "name" : "classmate",
                                "price" : [
                                        {
                                                "RS" : 100,
                                                "Dollar" : 12
                                        }
                                ]
                        }
                ]
        }
]

我想添加新的价格详情,例如

price : [
       {
          "RS" : 100,
           "Dollar : 12
       },
        {
            "RS" : 150,
           "Dollar : 15
        } 
      ]

请给我一些建议

【问题讨论】:

    标签: node.js mongodb mongoose schema


    【解决方案1】:

    由于 $ 运算符用于更新,引用自 $ for update 上的 MongoDB 文档,

    位置 $ 运算符标识数组中要更新的元素,而无需明确指定该元素在数组中的位置。

    所以在上面的代码中,playlists.$.musics 部分只声明更新与第一个管道上的条件匹配的 first 文档的属性音乐。

    我希望这会有所帮助。

    【讨论】:

    • thnx 回复,但是如果收藏像book : [{ brand : [{ price : { doller : 7 ,euro : 20 } }] }] 那么如果我们想添加price : {doller : 8,euro : 22 } 那么??
    • 我可以用{$push : {"book.$.brand.$.price : {dollar : 8 , euro : 22 } } }
    • 嗨 Rupesh,我认为这行不通。正如文档中所说,$ 运算符不能用于遍历嵌套在其他数组中的数组的查询
    • ,请问您能给我一些建议吗?
    • 品牌属性是否有唯一标识符,还是只有price字段的数组类型?
    猜你喜欢
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    • 2015-04-02
    • 2015-08-24
    • 2016-07-06
    • 2020-09-24
    相关资源
    最近更新 更多