Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/vedfi/mondroid

Mongodb Client w/ Flutter
https://github.com/vedfi/mondroid

dart flutter mongodb mongodb-client

Last synced: about 1 month ago
JSON representation

Mongodb Client w/ Flutter

Awesome Lists containing this project

README

        

[mondroid-banner]("https://user-images.githubusercontent.com/29797832/160253110-e3dcf46d-7c7e-4795-901a-c998f39d4cdd.jpg")

Download on the App Store
Get it on Google Play

## About This Project
- The main goal of this project is providing a mongodb client for mobile devices. (Like official desktop client [Mongodb Compass](https://www.mongodb.com/products/compass))
- Mondroid is written in Flutter and utilizes [mongo_dart](https://github.com/mongo-dart/mongo_dart) driver.

## Features

### General
- Both mongodb:// and mongodb+srv:// connections are supported. ([Mongodb Connection Strings](https://www.mongodb.com/docs/manual/reference/connection-string/))
- Adding, removing, editing and reordering connection strings.
- Auto reconnecting.

### Collections
- Creating and deleting collections.
- Number of documents can be seen in each collection tile.

### Querying
- Find queries are supported in json format. ([Mongodb Query Operators](https://www.mongodb.com/docs/manual/reference/operator/query/))
- Sorting is also supported. ([Sorting Documents In Mongodb](https://www.mongodb.com/docs/manual/reference/operator/aggregation/sort/#mongodb-pipeline-pipe.-sort))

### Documents
- CRUD operations are supported.
- On listing page; documents are represented in expandable tree format.
- On editing page; documents are represented in json string format.

### Custom Json Encoding / Decoding
- Some data types are not supported by default json:convert library.
- The following operators were used to support those types.
- Please note that i don't recommend modifiying BsonBinary fields.
- Keep in mind that only Generic:(0) and LegacyUUID:(3) binary subtypes are supported. [(Binary Subtypes)](https://www.mongodb.com/docs/manual/reference/bson-types/#binary-data)
- Binary subtype 4 represents UUID and it is already available.

| Type | Operator | Usage |
|---------------------|--------------------------|----------------------------------------------|
| ObjectId | $oid | "$oid:5a97f9c91c807bb9c6eb5fb4" |
| DateTime | $date | "$date:1998-11-02T01:30:00.000Z" |
| Uuid | $uuid | "$uuid:ddca6dd7-9887-4f56-8dea-264cbe1c15b1" |
| Long | $long | "$long:300497" |
| Decimal | $decimal | "$decimal:1102.98" |
| BsonBinary | $binary | "$binary:3_ABCDEF" ("$binary: subType_value")|
| NaN (Double) | $doubleNaN | "$doubleNaN" |
| Infinity (Decimal) | $decimalInfinity | "$decimalInfinity" |
| Infinity (Double) | $doubleInfinity | "$doubleInfinity" |
| -Infinity (Decimal) | $decimalNegativeInfinity | "$decimalNegativeInfinity" |
| -Infinity (Double) | $doubleNegativeInfinity | "$doubleNegativeInfinity" |

## User Interface








## Side Notes
I won't be able to develop full time; as this is a hobby project.