Este capítulo apresenta como inserir dados de documentos no MongoDB usando o shell do mongo.

Inserindo um Único Documento

O método db.collection.insertOne() é usado para inserir um único documento em uma coleção.

Se o documento não especificar o campo _id, o MongoDB irá gerar automaticamente um ObjectId exclusivo para o campo _id.

Nota: ObjectId é um gerador de ID exclusivo integrado ao MongoDB usado para geração de IDs.

Exemplo: Inserir um documento na coleção inventory:

db.inventory.insertOne(
   { item: "canvas", qty: 100, tags: ["algodão"], size: { h: 28, w: 35.5, uom: "cm" } }
)

Retorna:

{
	"acknowledged" : true,
	"insertedId" : ObjectId("609bf11dfc901345cafc438a")
}

Se a inserção for bem-sucedida, ele retorna a chave primária. O campo insertedId é o ID exclusivo gerado automaticamente pelo MongoDB. Se a coleção inventory não existir, ela será criada automaticamente.

Consulte os dados do documento inserido:

> db.inventory.find( { item: "canvas" } )
{ "_id" : ObjectId("609bf11dfc901345cafc438a"), "item" : "canvas", "qty" : 100, "tags" : [ "algodão" ], "size" : { "h" : 28, "w" : 35.5, "uom" : "cm" } }

Usando o método find, insira a condição de consulta para encontrar os dados do documento onde item é "canvas".

Inserindo Múltiplos Documentos

O método db.collection.insertMany() pode inserir vários documentos em uma coleção.

Exemplo: Inserir três dados de documentos passando um array para o método insertMany:

db.inventory.insertMany([
   { item: "journal", qty: 25, tags: ["em branco", "vermelho"], size: { h: 14, w: 21, uom: "cm" } },
   { item: "tapete", qty: 85, tags: ["cinza"], size: { h: 27.9, w: 35.5, uom: "cm" } },
   { item: "mousepad", qty: 25, tags: ["gel", "azul"], size: { h: 19, w: 22.85, uom: "cm" } }
])

Valor de retorno:

{
	"acknowledged" : true,
	"insertedIds" : [
		ObjectId("609bf30ffc901345cafc438b"),
		ObjectId("609bf30ffc901345cafc438c"),
		ObjectId("609bf30ffc901345cafc438d")
	]
}

Retorna os IDs dos três novos documentos inseridos.

Comportamento da Inserção

Criação da Coleção

No MongoDB, não é necessário criar uma coleção antecipadamente. Ao inserir dados pela primeira vez, se a coleção não existir, ela é criada automaticamente.

Campo _id

No MongoDB, todo documento armazenado em uma coleção tem um campo _id único atuando como chave primária. Se o documento inserido omitir o campo _id, o driver do MongoDB gera automaticamente um ObjectId para o campo _id.

Atomicidade

Todas as operações de escrita no MongoDB são operações atômicas no nível do documento único.