[如何在 MongoDB 中进行批量更新](https://res.cloudinary.com/practicaldev/image/fetch/s--WuSstgut--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:// /donaldfeury.xyz/content/images/2021/08/MongoDB_Logo2-3.png)

有关 MongoDB 的完整概述以及我在上面的所有帖子,请查看我的概述。

MongoDB 提供了几种方法来专门更新一个文档并且批量更新以几乎相同的方式完成。

使用以下数据:

db.podcasts.insertMany([
    {
        "name": "Tech Over Tea",
        "episodeName": "#75 Welcome Our Hacker Neko Waifu | Cyan Nyan",
        "dateAired": ISODate("2021-08-02"),
        "listenedTo": true,
    },
    {
        "name": "Tech Over Tea",
        "episodeName": "Neckbeards Anonymous - Tech Over Tea #20 - feat Donald Feury",
        "dateAired": ISODate("2020-07-13"),
        "listenedTo": true
    },
    {
        "name": "Tech Over Tea",
        "episodeName": "#34 The Return Of The Clones - feat Bryan Jenks",
        "dateAired": ISODate("2020-10-19"),
        "listenedTo": false
    },
    {
        "name": "Cinemassacre Podcast",
        "episodeName": "AVGN Fan Q&A, Starting a Band, and the Last Year - Cinemassacre Podcast",
        "dateAired": ISODate("2021-08-10"),
        "listenedTo": true
    }
])

进入全屏模式 退出全屏模式

让我们使用update更新所有“Tech Over Tea”播客条目以标记为已收听。为了使用update更新多个文档,我们必须传入一个可选参数来告诉 MongoDB 这样做。

db.podcasts.update(
    {name: "Tech Over Tea"},
    {$set: { listenedTo: true} },
    {multi: true}
)

进入全屏模式 退出全屏模式

我们可以使用updateMany获得相同的结果。

db.podcasts.updateMany(
    {name: "Tech Over Tea"},
    {$set: { listenedTo: true} }
)

进入全屏模式 退出全屏模式

Logo

MongoDB社区为您提供最前沿的新闻资讯和知识内容

更多推荐