Skip to content

vedfi/mondroid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mondroid-banner

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)
  • Mondroid is written in Flutter and utilizes mongo_dart driver.

Features

General

  • Both mongodb:// and mongodb+srv:// connections are supported. (Mongodb Connection Strings)
  • 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

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)
  • 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.