Skip to main content

Kongodb

Kongodb is Hybrid Row-and-Document Oriented datastore leveraging SQL/RDBMS database: SQLite, MySQL, MariaDB, Postgresql

Kongodb is both RDMBS + Document Oriented together.

It supports, regular SQL query along with Document Oriented and Key Value store.

Engine:

  • SQLite
  • Mariadb
  • PostgreSQL
  • MySQL

Install

pip install kongodb

Usage

from kongodb import kongodb

# Open the db
db = kongodb("./my.db") 

# Select a collection 
# Collection will be created automatically
collection = db.collection("test")

# Get total items
print(len(collection))

# Add an item. It returns kongodb#Item
item = collection.add({
  "name": "Kongo",
  "type": "DB",
  "version": "1.0.0"
})

# Retrieve item by _id
_id = "9c5e5fbd05544700995c5fa3ca3ef214"
item = collection.get(_id)

# Access properties

item.get("name") # -> fun 
item.get("type") # -> DB
all_item_data = dict(item)

# Update a field
item.set("version", "1.0.1")

# or advance atomic update
item.update({
  "version": "1.0.1",
  "download:$inc": True,
  "ips:$xadd": "0.0.0.0"
})
#
item.get("version") # -> 1.0.1
item.get("download") # -> 1 or last value + 1
item.get("ips") # -> ["0.0.0.0"]

# Delete item
item.delete()

# Search
for item in collection.find():
  print(item.get("name"))

~ API ~

Database

kongodb

#collection

To select a collection in the database

from kongodb import kongodb 

db = kongodb()

users = fun.collection("users")

# all users

all_users = users.find_all()

#Collection

List all the collections in the database

from kongodb import kongodb 

db = kongodb()

users = fun.collection("users")

ColumnTypes For Index:

Type Column SQlite MariaDB PostgreSQL
Integer IntegerType INT INTEGER INT
String StringType VARCHAR(n) VARCHAR(n) VARCHAR(n)
Bool BoolType INT(1) TINYINT(1) BOOLEAN
Datetime DatetimeType TIMESTAMP DATETIME TIMESTAMP
Numeric NumericType FLOAT DOUBLE PRECISION DOUBLE PRECISION

*n = the max number for the char

ColumnType

  types.[columtype](
      name:str,  # str: name of the field
      length:int, # int: length of the type if available 
      index:bool, # bool: to index the field
      unique:bool, # bool: to index and make field unique  
      default:Any # Any: any data to set as default
  )
ie: 



Example

types.StringType(
  name="myFieldName",
  length=125,
  index=True,
  unique=True,
  default="Hello"
)

Add Columns

from kongodb import kongodb, types

COLUMNS = [
  types.IntegerType('count', index=True, default=0),
  types.BoolType('is_active', default=True),
  types.Datetime('created_at', default="NOW()"),
  types.String('full_name'),
  types.NumericType('amount', default=0.00)
]

db = kongodb("sqlite://")

collection = db.collection('test', columns=COLUMNS)

Metadata

Release files for kongodb 0.0.20

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kongodb 0.0.20
File Size Uploaded
kongodb-0.0.20.tar.gz 24.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for kongodb 0.0.20
File Interpreter ABI Platform
kongodb-0.0.20-py3-none-any.whl Python 3 none any Details

Total release size: 49.2 kB

Release files / kongodb-0.0.20.tar.gz

Download URL kongodb-0.0.20.tar.gz
Size 24.1 kB
Tags Source
SHA-256 checksum
How to use checksums
6aa74d11223a3810d1c5f7023f8a98cde67f32f710228a8a49e9bb7a19dd12b3
BLAKE2b-256 checksum
How to use checksums
e50872c3b31f2a7cfecf712d8b8ea75ac4ecb701fb4866cf8f6d10638abe86f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.8.10

Release files / kongodb-0.0.20-py3-none-any.whl

Download URL kongodb-0.0.20-py3-none-any.whl
Size 25.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e26a40d528cb7c49991eedbc720f1a745fc75bcae7c0d6451cd3e32e498ec0ad
BLAKE2b-256 checksum
How to use checksums
a0c64377c115e2d89cace41a13a6a6f70762d16820b68dd06efc00542dd3dca4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.8.10

Release history Release notifications | RSS feed

This release

0.0.20 This release

2 release files

0.0.19

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page