MongoDB - Inserir Documento

Neste capítulo, aprenderemos como inserir documentos na coleção do MongoDB.

O Método insert ()

Para inserir dados na coleção do MongoDB, você precisa usar o MongoDB insert() ou save() método.

Sintaxe

A sintaxe básica de insert() o comando é o seguinte -

>db.COLLECTION_NAME.insert(document)

Exemplo

> db.users.insert({
... _id : ObjectId("507f191e810c19729de860ea"),
... title: "MongoDB Overview",
... description: "MongoDB is no sql database",
... by: "tutorials point",
... url: "http://www.tutorialspoint.com",
... tags: ['mongodb', 'database', 'NoSQL'],
... likes: 100
... })
WriteResult({ "nInserted" : 1 })
>

Aqui mycolé o nome da nossa coleção, conforme criado no capítulo anterior. Se a coleção não existir no banco de dados, o MongoDB criará essa coleção e inserirá um documento nela.

No documento inserido, se não especificarmos o parâmetro _id, o MongoDB atribuirá um ObjectId exclusivo para este documento.

_id é um número hexadecimal de 12 bytes exclusivo para cada documento em uma coleção. 12 bytes são divididos da seguinte forma -

_id: ObjectId(4 bytes timestamp, 3 bytes machine id, 2 bytes process id, 3 bytes incrementer)

Você também pode passar uma matriz de documentos para o método insert () como mostrado abaixo :.

> db.createCollection("post")
> db.post.insert([
	{
		title: "MongoDB Overview",
		description: "MongoDB is no SQL database",
		by: "tutorials point",
		url: "http://www.tutorialspoint.com",
		tags: ["mongodb", "database", "NoSQL"],
		likes: 100
	},
	{
	title: "NoSQL Database",
	description: "NoSQL database doesn't have tables",
	by: "tutorials point",
	url: "http://www.tutorialspoint.com",
	tags: ["mongodb", "database", "NoSQL"],
	likes: 20,
	comments: [
		{
			user:"user1",
			message: "My first comment",
			dateCreated: new Date(2013,11,10,2,35),
			like: 0
		}
	]
}
])
BulkWriteResult({
	"writeErrors" : [ ],
	"writeConcernErrors" : [ ],
	"nInserted" : 2,
	"nUpserted" : 0,
	"nMatched" : 0,
	"nModified" : 0,
	"nRemoved" : 0,
	"upserted" : [ ]
})
>

Para inserir o documento, você pode usar db.post.save(document)Além disso. Se você não especificar_id no documento então save() método funcionará da mesma forma que insert()método. Se você especificar _id, ele substituirá todos os dados do documento contendo _id conforme especificado no método save ().

O método insertOne ()

Se você precisar inserir apenas um documento em uma coleção, poderá usar este método.

Sintaxe

A sintaxe básica do comando insert () é a seguinte -

>db.COLLECTION_NAME.insertOne(document)

Exemplo

O exemplo a seguir cria uma nova coleção chamada empDetails e insere um documento usando o método insertOne ().

> db.createCollection("empDetails")
{ "ok" : 1 }
> db.empDetails.insertOne(
	{
		First_Name: "Radhika",
		Last_Name: "Sharma",
		Date_Of_Birth: "1995-09-26",
		e_mail: "[email protected]",
		phone: "9848022338"
	})
{
	"acknowledged" : true,
	"insertedId" : ObjectId("5dd62b4070fb13eec3963bea")
}
>

O método insertMany ()

Você pode inserir vários documentos usando o método insertMany (). Para este método, você precisa passar uma série de documentos.

Exemplo

O exemplo a seguir insere três documentos diferentes na coleção empDetails usando o método insertMany ().

> db.empDetails.insertMany(
	[
		{
			First_Name: "Radhika",
			Last_Name: "Sharma",
			Date_Of_Birth: "1995-09-26",
			e_mail: "[email protected]",
			phone: "9000012345"
		},
		{
			First_Name: "Rachel",
			Last_Name: "Christopher",
			Date_Of_Birth: "1990-02-16",
			e_mail: "[email protected]",
			phone: "9000054321"
		},
		{
			First_Name: "Fathima",
			Last_Name: "Sheik",
			Date_Of_Birth: "1990-02-16",
			e_mail: "[email protected]",
			phone: "9000054321"
		}
	]
)
{
	"acknowledged" : true,
	"insertedIds" : [
		ObjectId("5dd631f270fb13eec3963bed"),
		ObjectId("5dd631f270fb13eec3963bee"),
		ObjectId("5dd631f270fb13eec3963bef")
	]
}
>