如何在MongoDB中进行批量更新

123 阅读1分钟

关于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} }
)