Atualizado: 02/01/2025

Adicionando Dados ao MongoDB - Node.js

No tema anterior, abordamos alguns conceitos básicos sobre o MongoDB. Agora, vamos detalhar como adicionar e recuperar dados do banco de dados.

Para adicionar dados, podemos usar diversos métodos. Se precisamos adicionar um único objeto, utilizamos o método insertOne(). Para adicionar um conjunto de objetos, utilizamos o método insertMany().

Adicionando um Objeto

Para adicionar um único objeto, utilizamos o método insertOne(). Este método recebe como parâmetro o objeto a ser adicionado. Vamos analisar um exemplo:

const MongoClient = require("mongodb").MongoClient;

const url = "mongodb://127.0.0.1:27017/";
const mongoClient = new MongoClient(url);

async function run() {
    try {
        await mongoClient.connect();
        const db = mongoClient.db("usersdb");
        const collection = db.collection("users");
        const user = {name: "Tom", age: 28};
        const result = await collection.insertOne(user);
        console.log(result);
        console.log(user);
    } catch(err) {
        console.log(err);
    } finally {
        await mongoClient.close();
    }
}
run().catch(console.error);

No exemplo acima, criamos um objeto chamado user com os campos name e age. Em seguida, adicionamos este objeto à coleção users.

O método insertOne() retorna um objeto com informações sobre a operação realizada. No exemplo acima, imprimimos o resultado no console.

Resultado da execução do programa:

c:\node\mongoapp>node app
{
    acknowledged: true,
    insertedId: new ObjectId("6112a80ca8a25160d53d161a")
}
{name: "Tom", age: 28, _id: new ObjectId("6112a80ca8a25160d53d161a")}

Podemos ver o resultado da operação, em particular, o identificador do objeto adicionado através da propriedade result.insertedId. Além disso, observamos que o objeto user recebeu uma propriedade adicional _id após ser adicionado ao banco de dados. Esta é uma identificação única atribuída pelo servidor.

Adicionando Vários Documentos

Agora, vamos utilizar o método insertMany(). Adicionaremos um conjunto de objetos e, para isso, modificaremos o arquivo da aplicação app.js:

const MongoClient = require("mongodb").MongoClient;

const url = "mongodb://127.0.0.1:27017/";
const mongoClient = new MongoClient(url);

const users = [
    {name: "Bob", age: 35}, 
    {name: "Alice", age: 21}, 
    {name: "Tom", age: 45}
];

async function run() {
    try {
        await mongoClient.connect();
        const db = mongoClient.db("usersdb");
        const collection = db.collection("users");
        const results = await collection.insertMany(users);
        console.log(results);
        console.log(users);
    } catch(err) {
        console.log(err);
    } finally {
        await mongoClient.close();
    }
}
run().catch(console.error);

Assim como o insertOne, o método insertMany() recebe como parâmetro os dados a serem adicionados, no caso, um array de objetos, e retorna o resultado da operação. Se a adição for bem-sucedida, os objetos adicionados do array users também receberão a propriedade _id.

Vamos executar a aplicação:

c:\node\mongoapp>node app
{
    acknowledged: true,
    insertedCount: 3,
    insertedIds: {
        '0': new ObjectId("6377874e1e1a085c14fcd12f"),
        '1': new ObjectId("6377874e1e1a085c14fcd130"),
        '2': new ObjectId("6377874e1e1a085c14fcd131")
    }
}
[
    {
        name: 'Bob',
        age: 35,
        _id: new ObjectId("6377874e1e1a085c14fcd12f")
    },
    {
        name: 'Alice',
        age: 21,
        _id: new ObjectId("6377874e1e1a085c14fcd130")
    },
    {
        name: 'Tom',
        age: 45,
        _id: new ObjectId("6377874e1e1a085c14fcd131")
    }
]

O objeto de resultado na propriedade insertedCount contém a quantidade de documentos adicionados, e através da propriedade insertedIds podemos obter os identificadores dos documentos adicionados.

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com