如何替换MongoDB中的现有文档

66 阅读1分钟

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

MongoDB提供了几种专门更新一个文档的方法,在做部分更新时效果很好。

如果你想用一个新的文档完全替换一个现有的文档,你可以使用replaceOne

首先,让我们在一个叫做podcasts 的集合中插入一些数据:

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-07-13 上播出的播客。与updateupdateOne 不同,replaceOne 不使用update operators :

db.podcasts.replaceOne(
	{dateAired: ISODate("2020-07-13")},
	{
		"name": "Tech Over Tea",
		"episodeName": "#73 Is This A Gaming Podcast Now | Solo",
		"dateAired": ISODate("2021-07-19"),
		"listenedTo": false
	}
)

参数与updateupdateOne 相似,第一个参数是查询,用于匹配要替换的文档。然而,第二个参数是一个新的文档,将完全取代第一个匹配的文档。