如何在MongoDB集合中批量插入文档

797 阅读1分钟

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

你不仅可以用insert 方法向一个集合中插入单个文档,它还可以接收一个文档数组进行批量插入操作。

下面的例子将插入给定数组中的所有文档到名为podcasts 的集合中:

db.podcasts.insert([
	{
		"name": "Tech Over Tea",
		"episodeName": "#75 Welcome Our Hacker Neko Waifu | Cyan Nyan",
		"dateAired": ISODate("2021-08-02"),
		"odyseeURL": "https://odysee.com/@TechOverTea:3/tech-over-tea-ep75:5",
		"youtubeURL": "https://youtu.be/cc8ZTzi_fzg"
	},
	{
		"name": "Tech Over Tea",
		"episodeName": "Neckbeards Anonymous - Tech Over Tea #20 - feat Donald Feury",
		"dateAired": ISODate("2020-07-13"),
		"odyseeURL": "https://odysee.com/@TechOverTea:3/neckbeards-anonymous:5",
		"youtubeURL": "https://youtu.be/DzXLZpRS0xU"
	},
	{
		"name": "Tech Over Tea",
		"episodeName": "#34 The Return Of The Clones - feat Bryan Jenks",
		"dateAired": ISODate("2020-10-19"),
		"odyseeURL": "https://odysee.com/@TechOverTea:3/the-return-of-the-clones:a",
		"youtubeURL": "https://youtu.be/f4omYp7j05U"
	}
])

还有一个方法叫做insertMany ,它只接受一个文档数组作为参数,而不像insert ,它可以对单个文档以及文档数组进行操作。

最近的MongoDB版本在使用insert 时会给出一个废弃警告,并希望你在进行批量插入时使用insertMany :

db.podcasts.insertMany([
	{
		"name": "Tech Over Tea",
		"episodeName": "#75 Welcome Our Hacker Neko Waifu | Cyan Nyan",
		"dateAired": ISODate("2021-08-02"),
		"odyseeURL": "https://odysee.com/@TechOverTea:3/tech-over-tea-ep75:5",
		"youtubeURL": "https://youtu.be/cc8ZTzi_fzg"
	},
	{
		"name": "Tech Over Tea",
		"episodeName": "Neckbeards Anonymous - Tech Over Tea #20 - feat Donald Feury",
		"dateAired": ISODate("2020-07-13"),
		"odyseeURL": "https://odysee.com/@TechOverTea:3/neckbeards-anonymous:5",
		"youtubeURL": "https://youtu.be/DzXLZpRS0xU"
	},
	{
		"name": "Tech Over Tea",
		"episodeName": "#34 The Return Of The Clones - feat Bryan Jenks",
		"dateAired": ISODate("2020-10-19"),
		"odyseeURL": "https://odysee.com/@TechOverTea:3/the-return-of-the-clones:a",
		"youtubeURL": "https://youtu.be/f4omYp7j05U"
	}
])