Explore o novo chatbot do Developer Center! O MongoDB AI chatbot pode ser acessado na parte superior da sua navegação para responder a todas as suas perguntas sobre o MongoDB .

Junte-se a nós no Amazon Web Services re:Invent 2024! Saiba como usar o MongoDB para casos de uso de AI .
Desenvolvedor do MongoDB
Central de desenvolvedor do MongoDBchevron-right
Produtoschevron-right
Atlaschevron-right

Instâncias sem servidor do MongoDB Atlas: início rápido

Jesse Hall4 min read • Published Jul 13, 2021 • Updated Aug 13, 2024
Sem servidorNode.jsAtlasJavaScript
Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Início rápido
star-empty
star-empty
star-empty
star-empty
star-empty
As instâncias sem servidor do MongoDB Atlas agora estão GA (disponibilidade geral)!
O que é uma instância sem servidor, você pode perguntar? Em resumo, é um banco de dados on-demand sem servidor. Neste artigo, implantaremos uma instância sem servidor do MongoDB Atlas e executaremos algumas operações CRUD básicas. Você precisará de uma conta do MongoDB Atlas. Se você já tem um loginou registre-se agora.

Planejamento de demanda

Ao implantar um MongoDB Atlas cluster, você precisa entender quais recursos de computação e armazenamento seu aplicativo exigirá para que você escolha a camada correta para acomodar suas necessidades.
À medida que suas necessidades de armazenamento aumentam, você precisará ajustar a camada do cluster de acordo. Você também pode habilitar o auto-scaling entre um nível mínimo e máximo.

Gerenciamento contínuo

Depois de definir sua escala de níveis, o que acontece quando seu aplicativo explode e recebe toneladas de tráfego e excede seu nível máximo estimado? Vai ser lento e sem resposta porque não há recursos suficientes.
Ou talvez você tenha previsto demais a quantidade de tráfego que seu aplicativo receberia, mas não está recebendo nenhum tráfego. Você ainda precisa pagar pelos recursos, mesmo que eles não estejam sendo utilizados.
À medida que seu aplicativo é dimensionado, você está limitado a esses incrementos em camadas, mas nada entre eles.
Essas camadas associam computação e armazenamento uns aos outros. Talvez você não precise de 3TB de armazenamento, mas precisa de muita computação. Então, você é forçado a entrar em um nível que não está equilibrado com as necessidades do seu aplicativo.

O Solve

As instâncias sem servidor do MongoDB Atlas resolvem todos esses problemas:
  • Atrito de implantação
  • sobrecarga de gerenciamento
  • Consequências do desempenho
  • Pagar por recursos não utilizados
  • Modelos de dados rígidos
Com as instâncias sem servidor do MongoDB Atlas, você obterá implantação e dimensionamento contínuos, uma infraestrutura de backend confiável e um modelo de preços intuitivo.
É ainda mais fácil implantar uma instância sem servidor do que implantar um cluster gratuito no MongoDB Atlas. Tudo o que você precisa fazer é escolher um provedor de nuvem e uma região. Depois de criada, sua instância sem servidor será facilmente escalada para cima e para baixo à medida que a demanda do seu aplicativo flutua.
A melhor parte é que você paga apenas pelos recursos de computação e armazenamento que usar, deixando as operações para a melhor automação da classe do MongoDB, incluindo segurança de ponta a ponta, tempo de atividade contínuo e backups regulares.

Crie sua primeira instância sem servidor

Vamos ver como funciona...
Se você ainda não se inscreveu em uma MongoDB Atlas, vá em frente e faça isso primeiro e, em seguida, selecione "Construir um banco de dados".
Em seguida, escolha a opção de implantação sem servidor.
Agora, selecione um provedor de nuvem e região e, opcionalmente, modifique o nome da instância. Crie seu novo sistema e você estará pronto para começar a usar sua instância sem servidor!
Sua instância sem servidor estará instalada e funcionando em apenas alguns minutos. Alternativamente, você também pode utilizar o Atlas CLI para criar e implantar uma nova instância sem servidor.
Enquanto aguardamos isso, vamos configurar um rápido aplicativo Node.js para testar as operações CRUD.

Exemplo de CRUD do Node.js

Pré-requisito: você precisará do Node.js instalado em seu computador.
A conexão com a instância sem servidor é tão fácil quanto a de uma instância em camadas.
  1. Clique em “Connect.”
  2. Defina seu endereço IP e o usuário do banco de dados da mesma forma que você faria com uma instância hierárquica.
  3. Escolha um método de conexão.
    • Você pode escolher entre mongo shell, Compass ou "Connect your application " usando drivers do MongoDB.
Vamos "Connect your application " e escolher o Node.js como nosso driver. Isso nos fornecerá uma connection string que podemos usar em nosso aplicativo Node.js. Marque a caixa "Include full driver code example " e copie o exemplo na área de transferência.
Para configurar nosso aplicativo, abra o VS Code (ou o editor de sua escolha) em uma pasta em branco. No terminal, vamos iniciar um projeto:
npm init -y
Agora vamos instalar o MongoDB em nosso projeto:
npm i mongodb

criar

Criaremos um arquivoserver.js na raiz e colaremos o exemplo de código que acabamos de copiar.
1const MongoClient = require('mongodb').MongoClient;
2const uri = "mongodb+srv://mongo:<password>@serverlessinstance0.xsel4.mongodb.net/myFirstDatabase?retryWrites=true&w=majority";
3const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });
4
5client.connect(err => {
6 const collection = client.db("test").collection("devices");
7
8 // perform actions on the collection object
9
10 client.close();
11});
Precisamos substituir <password> por nossa senha de usuário real e myFirstDatabase pelo nome do banco de dados ao qual nos conectaremos.
Vamos modificar o métodoclient.connect para criar um banco de dados, collection e inserir um novo documento.
Agora executaremos isso em nosso terminal usando node server.
1client.connect((err) => {
2 const collection = client.db("store").collection("products");
3 collection
4 .insertOne(
5 {
6 name: "JavaScript T-Shirt",
7 category: "T-Shirts",
8 })
9 .then(() => {
10 client.close();
11 });
12});
Quando usamos os métodos.db e .collection, se o banco de dados e/ou coleção não existir, ele será criado. Também temos que mover o métodoclient.close para .then() depois que a promessa.insertOne() tiver sido retornada. Como alternativa, podemos envolver isso em uma função assíncrona.
Também podemos inserir vários documentos ao mesmo tempo usando .insertMany().
1collection
2 .insertMany([
3 {
4 name: "React T-Shirt",
5 category: "T-Shirts",
6 },
7 {
8 name: "Vue T-Shirt",
9 category: "T-Shirts",
10 }
11 ])
12 .then(() => {
13 client.close();
14 });
Faça as alterações e execute node server novamente.

Leia

Vamos ver o que há no banco de dados agora. Deve haver três documentos. O métodofind() retornará todos os documentos na coleção.
1client.connect((err) => {
2 const collection = client.db("store").collection("products");
3 collection.find().toArray((err, result) => console.log(result))
4 .then(() => {
5 client.close();
6 });
7});
Ao executar node server agora, você deverá ver todos os documentos criados no console.
Se quisermos encontrar um documento específico, poderíamos passar um objeto para o métodofind(), dando a ele algo para procurar.
1client.connect((err) => {
2 const collection = client.db("store").collection("products");
3 collection.find({name: React T-Shirt”}).toArray((err, result) => console.log(result))
4 .then(() => {
5 client.close();
6 });
7});

Atualização

Para atualizar um documento, podemos usar o métodoupdateOne(), passando um objeto com os parâmetros de pesquisa e informações para atualizar.
1client.connect((err) => {
2 const collection = client.db("store").collection("products");
3 collection.updateOne(
4 { name: "Awesome React T-Shirt" },
5 { $set: { name: "React T-Shirt" } }
6 )
7 .then(() => {
8 client.close();
9 });
10});
Para ver estas alterações, execute um find() ou findOne() novamente.

Excluir

Para excluir algo do banco de dados, podemos usar o métododeleteOne(). Isto é semelhante a find(). Só precisamos passar um objeto para que ele encontre e exclua.
1client.connect((err) => {
2 const collection = client.db("store").collection("products");
3 collection.deleteOne({ name: "Vue T-Shirt" }).then(() => client.close());
4});

Conclusão

É superfácil usar instâncias sem servidor do MongoDB Atlas! Você obterá implantação e dimensionamento contínuos, uma infraestrutura de back-end confiável e um modelo de preços intuitivo. Achamos que as instâncias sem servidor são uma ótima opção de implementação para novos usuários no Atlas.
Eu adoraria ouvir seus comentários ou perguntas. Vamos conversar na MongoDB Community.

Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Início rápido
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Tutorial

Como otimizar aplicativos LLM com compactação de prompts usando LLMLingua e LangChain


Jun 18, 2024 | 13 min read
Tutorial

Explorando operadores de janela no processamento de fluxo Atlas


Aug 13, 2024 | 4 min read
exemplo de código

Blogue


Sep 11, 2024 | 1 min read
Tutorial

Construir um elemento de formulário de preenchimento automático com Atlas Search e JavaScript


Sep 09, 2024 | 8 min read
Sumário