No MongoDB o
db.collection.insertMany() O método insere vários documentos em uma coleção. A
collection parte é o nome da coleção na qual inserir os documentos. Exemplo
Aqui está um exemplo de uso de
db.collection.insertMany() para inserir vários documentos em uma coleção chamada pets :db.pets.insertMany([
{ _id: 1, name: "Wag", type: "Dog" },
{ _id: 2, name: "Bark", type: "Dog" },
{ _id: 3, name: "Meow", type: "Cat" }
]) Resultado:
{ "acknowledged" : true, "insertedIds" : [ 1, 2, 3 ] } O
db.collection.insertMany() O método retorna um documento contendo:- Um booleano
acknowledgedcomotruese a operação foi executada com preocupação de gravação oufalsese a preocupação de gravação foi desativada. - Uma matriz de
_idvalores para cada documento inserido com sucesso.
Agora, se usarmos
db.collection.find() para olhar para a coleção, veremos os documentos recém-adicionados. db.pets.find() Resultado:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" } Nesse caso, nossos três documentos são os únicos do acervo, então apenas esses documentos foram devolvidos.
No entanto, se a coleção fosse grande, poderíamos usar os IDs dos documentos para restringir o resultado apenas aos documentos nos quais estamos interessados.
db.pets.find({_id: {$in: [1,2,3]}}) Resultado:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" } E se a coleção não existir?
Se a coleção não existir, ela será criada e os documentos serão adicionados a ela.
Se a coleção já existe, então os documentos são simplesmente adicionados a ela (desde que seu
_id valores não conflitam com nenhum existente). Quando criei este exemplo, a coleção não existia e, portanto, a operação de inserção a criou.
O _id Campo
O
_id field é um campo identificador exclusivo no MongoDB. Conforme demonstrado no exemplo anterior, você pode fornecer seu próprio
_id campo no documento. Se você fizer isso, seu valor deverá ser exclusivo na coleção. Isso ocorre porque seu _id campo será usado como o identificador exclusivo do documento. Aqui está um exemplo de inserção de documentos sem fornecer o
_id Campos. db.pets.insertMany([
{ name: "Bruce", type: "Bat" },
{ name: "Sweetie", type: "Honey Badger" }
]) Resultado:
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("5fe30ef737b49e0faf1af215"),
ObjectId("5fe30ef737b49e0faf1af216")
]
} O
_id valores dos documentos são retornados. Poderíamos usá-los para pesquisar na coleção apenas os documentos que inserimos. Mas neste caso, vamos olhar para toda a coleção.
db.pets.find() Resultado:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }
{ "_id" : ObjectId("5fe30ef737b49e0faf1af215"), "name" : "Bruce", "type" : "Bat" }
{ "_id" : ObjectId("5fe30ef737b49e0faf1af216"), "name" : "Sweetie", "type" : "Honey Badger" } Podemos ver que nossos dois novos documentos estão incluídos na coleção.
O ordered Parâmetro
O
db.collection.insertMany() também aceita um ordered parâmetro. Este é um parâmetro booleano com um valor padrão de true . O
ordered O parâmetro especifica se a operação de inserção deve ser ordenada ou não ordenada. Se
ordered está definido como false , os documentos são inseridos em um formato não ordenado e podem ser reordenados por mongod para aumentar o desempenho. Com inserções ordenadas, se ocorrer um erro durante a inserção de um dos documentos, o MongoDB retornará o erro sem processar os documentos restantes na matriz.
Com inserções não ordenadas, se ocorrer um erro durante a inserção de um dos documentos, o MongoDB continua a inserir os documentos restantes na matriz.
Mais informações
O
db.collection.insertMany() também aceita um writeConcern argumento, que descreve o nível de reconhecimento solicitado do MongoDB para operações de gravação. Veja a documentação do MongoDB para
db.collection.insertMany() Para maiores informações.