Code Monkey home page Code Monkey logo

mongodb-example's Introduction

MongoDB example

CI

Simple example built for esp-rust-board that sends temperature and humidity to MongoDB, using POST method.

MongoDB Collection

To reproduce the example

  1. Setup MongoDB:
    1. Create an application
    2. Create a database
    3. Create a collection
  2. Rename cfg.toml.example to cfg.toml
  3. Fill the cfg.toml with:
    1. wifi_ssid: Wifi SSID
    2. wifi_pass: Wifi password
    3. api_key: MongoDB API Key
    4. data_source: MongoDB Data Source
    5. database: MongoDB Database name
    6. collection: MongoDB Collection name
    7. app_id: MongoDB App ID

Testing MongoDB from terminal

To publish data into your collection using curl:

curl https://data.mongodb-api.com/app/<app_id>/endpoint/data/v1/action/insertOne \
    -H 'Content-Type: application/json' \
    -H 'api-key: <api_key>' \
    --data-raw \
    '{
  "dataSource": "<data_source>",
  "database" : "<data_base>",
  "collection" : "<collection>",
  "document" : { "name": "Harvest",
                 "breed": "Labrador",
                 "age": 5 }
}'

For more information, see MongoDB documentation

Dev Containers

This repository offers Dev Containers supports for:

Note

In order to use GitHub Codespaces the project needs to be published in a GitHub repository and the user needs to be part of the Codespaces beta or have the project under an organization.

If using VS Code or GitHub Codespaces, you can pull the image instead of building it from the Dockerfile by selecting the image property instead of build in .devcontainer/devcontainer.json. Further customization of the Dev Container can be achived, see .devcontainer.json reference.

When using Dev Containers, some tooling to facilitate building, flashing and simulating in Wokwi is also added.

Build

  • Terminal approach:

    scripts/build.sh  [debug | release]
    

    If no argument is passed, release will be used as default

  • UI approach:

    The default build task is already set to build the project, and it can be used in VS Code and GitHub Codespaces:

    • From the Command Palette (Ctrl-Shift-P or Cmd-Shift-P) run the Tasks: Run Build Task command.
    • Terminal-> Run Build Task in the menu.
    • With Ctrl-Shift-B or Cmd-Shift-B.
    • From the Command Palette (Ctrl-Shift-P or Cmd-Shift-P) run the Tasks: Run Task command and select Build.
    • From UI: Press Build on the left side of the Status Bar.

Flash

Note

When using GitHub Codespaces, we need to make the ports public, see instructions.

  • Terminal approach:

    • Using flash.sh script:

      scripts/flash.sh [debug | release]
      

      If no argument is passed, release will be used as default

  • UI approach:

    • From the Command Palette (Ctrl-Shift-P or Cmd-Shift-P) run the Tasks: Run Task command and select Build & Flash.
    • From UI: Press Build & Flash on the left side of the Status Bar.
  • Any alternative flashing method from host machine.

Wokwi Simulation

VS Code Dev Containers and GitHub Codespaces

The Dev Container includes the Wokwi Vs Code installed, hence you can simulate your built projects doing the following:

  1. Press F1
  2. Run Wokwi: Start Simulator

Note

We assume that the project is built in debug mode, if you want to simulate projects in release, please update the elf and firmware proprieties in wokwi.toml.

For more information and details on how to use the Wokwi extension, see Getting Started and Debugging your code Chapter of the Wokwi documentation.

mongodb-example's People

Contributors

sergiogasquez avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.