Getting Started With MongoDB and C
Avalie esse Tutorial
Neste artigo, instalaremos o driverdoMongoDB C no macOS e usaremos esse driver para escrever alguns exemplos de aplicativos de console que podem interagir com seus dados do MongoDB executando operações CRUD básicas. Usaremos o Visual Studio Code para digitar o código e a linha de comando para compilar e executar nossos programas. Se você quiser experimentar agora, todo o código-fonte está no repositório GitHub.
- O conjunto de dados de amostra carregado no Atlas cluster (ou você pode modificar o código de amostra para utilizar seu próprio banco de dados e collection).
- O endereço IP da sua máquina está na lista de permissões. Nota: Você pode adicionar 0.0.0.0/0 como o endereço IP, que deve permitir o acesso de qualquer máquina. Essa configuração não é recomendada para uso em produção.
- Usaremos o Visual Studio Code, disponível no macOS, Windows e Linux, porque ele tem suporte oficial para código C. Basta baixar e instalar a versão apropriada.
- Precisamos das extensões C, que serão sugeridas quando você abrir um arquivo C pela primeira vez. Você também pode abrir extensões e procurar por "C/C++" e instalá-las. Isso instalará várias extensões: C/C++, C/C++ Themes e CMake.
- A última etapa é garantir que tenhamos um compilador C. Para isso,instale o Xcode da Mac App Store ou execute em um terminal:
Embora possamos usar oCMake para criar nossos aplicativos C (e você tenha instruções detalhadas sobre como fazer isso), usaremos o VS Code para digitar nosso código e o terminal para criar e executar nossos programas.
No macOS, se tivermos o gerenciador de pacotes homebrew instalado (o que você deve fazer), basta abrir um terminal e digitar:
Você também pode baixar o código-fonte e construir o driver, mas usar brew é muito mais conveniente.
Para fazer o preenchimento automático funcionar no VS Code, precisamos alterar a configuração da extensão para garantir que ela "veja" essas novas bibliotecas instaladas. Queremos alterar nosso INCLUDE_PATH para permitir que o IntelliSense verifique nosso código enquanto o digita e possa criar nosso aplicativo a partir do VS Code.
Para fazer isso, no VS Code, abra a pasta oculta
.vscode
e clique em c_cpp_properties.json e adicione estas linhas:Agora, abra tarefas.json e adicione estas linhas à matriz args:
Com eles, estamos informando ao VS Code onde encontrar as bibliotecas C do MongoDB para que ele possa compilar e verificar nosso código à medida que digitamos.
Vamos começar com um programa simples que se conecta ao MongoDB Atlas cluster e faz pings no servidor. Para isso, precisamos obter a cadeia de conexão (URI) para o MongoDB Atlas cluster e adicioná-la em nosso código. A melhor maneira é criar uma nova variável de ambiente com a chave "MONGODB_URI " e valorizar a connection string (URI). É uma boa prática manter a string de conexão dissociada do código, mas, neste exemplo, para simplificar, teremos nossa string de conexão codificada.
Incluímos o driver MongoDB e enviamos um comando "echo" de nossa função
main
. Este exemplo mostra como inicializar o cliente MongoDB C, como criar um comando, manipular JSON (neste caso, BCON, Notação de objetoBSON C), enviar um comando, processar a resposta e o erro e liberar qualquer memória usada.Embora possamos usar métodos muito mais sofisticados para compilar e executar nosso código, como este é apenas um arquivo de código-fonte C e estamos usando apenas algumas dependências, vou compilar a partir da linha de comando usando o bom e velho gcc:
Para executar o código, basta chamar o binário construído:
No repositório que acompanha esta postagem, você encontrará um shell script que cria e executa todos os exemplosde uma só vez.
Agora que temos o esqueleto de um aplicativo C, podemos começar a usar nosso banco de dados. Nesse caso, nos conectaremos ao banco de dados
sample_mflix
e listaremos todas as coleções lá.Após conectar ao banco de dados, listamos todas as conexões com um simples loop
for
após obter todos os nomes de collection commongoc_database_get_collection_names
.A amostra completa segue.
Se compilarmos e executarmos, obteremos esta saída:
Por ser um banco de dados baseado em documentos, a criação de documentos JSON é crucial para qualquer aplicativo que interaja com o MongoDB. Como este é um código C, não usamos JSON. Em vez disso, usamos BCON (notação de objetoBSON C, como mencionado acima). Para criar um novo documento, chamamos
BCON_NEW
e, para convertê-lo em uma string C, chamamos bson_as_canonical_extended_json.
Agora que abordamos os fundamentos da conexão com o MongoDB, vamos dar uma olhada em como manipular dados.
Provavelmente, a função mais usada de qualquer banco de dados é a recuperação rápida de dados. Na maioria dos casos de uso, gastamos muito mais tempo acessando dados do que inserindo ou atualizando esses mesmos dados. Nesse caso, depois de criar nossa conexão com o cliente MongoDB, chamamos
mongoc_collection_find_with_opts
, que encontrará dados com base em uma consulta que podemos passar. Quando tivermos os resultados, podemos iterar pelo cursor retornado e fazer algo com esses dados:A amostra completa segue.
OK, sabemos ler dados, mas que tal inserir dados novos em nosso MongoDB database? É fácil! Acabamos de criar um BSON para ser inserido e chamar
mongoc_collection_insert_one.
A amostra completa segue.
Para excluir um documento, chamamos
mongoc_collection_delete_one.
Precisamos passar um documento contendo a query para restringir os documentos que queremos localizar e excluir.A amostra completa segue.
Finalmente, para atualizar um documento, precisamos fornecer a consulta para encontrar o documento a ser atualizado e um documento com os campos que queremos alterar.
A amostra completa segue.
Com este artigo, abordamos a instalação do driver MongoDB C, configurando o VS Code como nosso editor e configurando outras ferramentas. Em seguida, criamos alguns aplicativos de console que se conectam ao MongoDB Atlas e executam operações CRUD básicas.
Obtenha mais informações sobre o driver Ce, para experimentar este código, a maneira mais fácil seria registrar-se para uma conta MongoDB gratuita. Nós mal podemos esperar para ver o que você construirá a seguir!