如何更新MongoDB集合中的单个文档

51 阅读1分钟

关于MongoDB的全面概述以及我关于它的所有帖子,请查看我的概述

你可以在MongoDB中更新现有的文档,如果你想一次只更新一个文档,你有三个主要选择。

你可以使用update 方法来更新一个文档。默认情况下,它只会更新一个文档,即使提供的查询匹配了多个文档。

首先,我们将把我们的数据集插入一个叫做podcasts 的集合中,使用 insertMany

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
	}
])

让我们更新在2020-10-19 上播出的播客集,以表明我们现在已经听过它了:

db.podcasts.update({dateAired: ISODate("2020-10-19")}, {
	{ $set: { listenedTo: true } }
})

第一个参数是我们的查询,指定我们要更新的文档。第二个参数是一个文件,描述了我们要如何更新该文件。

我们使用所谓的update operator ,称为set ,告诉MongoDB将listenedTo 更新为true 的新值。

我们可以用updateOne 来达到同样的效果:

db.podcasts.updateOne({dateAired: ISODate("2020-10-19")}, {
	{ $set: { listenedTo: true } }
})