Instâncias sem servidor do MongoDB Atlas: início rápido
Jesse Hall4 min read • Published Jul 13, 2021 • Updated Aug 13, 2024
Avalie esse Início rápido
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.
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.
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.
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.
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.
A conexão com a instância sem servidor é tão fácil quanto a de uma instância em camadas.
- Clique em “Connect.”
- 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.
- 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
Criaremos um arquivo
server.js
na raiz e colaremos o exemplo de código que acabamos de copiar.1 const MongoClient = require('mongodb').MongoClient; 2 const uri = "mongodb+srv://mongo:<password>@serverlessinstance0.xsel4.mongodb.net/myFirstDatabase?retryWrites=true&w=majority"; 3 const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true }); 4 5 client.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étodo
client.connect
para criar um banco de dados, collection e inserir um novo documento.Agora executaremos isso em nosso terminal usando
node server
.1 client.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()
.1 collection 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.Vamos ver o que há no banco de dados agora. Deve haver três documentos. O método
find()
retornará todos os documentos na coleção.1 client.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étodo
find()
, dando a ele algo para procurar.1 client.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 });
Para atualizar um documento, podemos usar o método
updateOne()
, passando um objeto com os parâmetros de pesquisa e informações para atualizar.1 client.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.Para excluir algo do banco de dados, podemos usar o método
deleteOne()
. Isto é semelhante a find()
. Só precisamos passar um objeto para que ele encontre e exclua.1 client.connect((err) => { 2 const collection = client.db("store").collection("products"); 3 collection.deleteOne({ name: "Vue T-Shirt" }).then(() => client.close()); 4 });
É 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.