MongoDB-Compatible Database Service A rock solid database service optimized for scale and speed. Enhance your apps with advanced in-memory indexing and search and in-database SQL analytics.

Fully Managed, Secure & Reliable

Amisalabs Document Database Service (Amisalabs DDS) is a fully-managed database service that makes it easy to set up, operate, and scale a secure document database in the cloud. Amisalabs DDS allows you to focus on your applications rather than administering your databases.


Speed & Performance

Amisalabs DDS is designed to offer you very low latency and high throughput than MongoDB running on the same hardware. This allows you to run both batch and operational workloads on the same database. Amisalabs DDS is the only fully managed database where you don't have to sacrifice speed, scale or cost efficiency when your application grows.

Simple & Innovative

MongoDB has led the field of JSON document databases. With its ease of use and wide driver support, it has become the go-to database for many startups and enterprises. Amisalabs DDS makes the MongoDB proposition better by providing a myriad of capabilities such as Multistatement ACID transactions, joins, in-database SQL analytics, caching, advanced indexing and search and much more.

  • MongoDB logo
  • MongoDB
  • Search &
    SQL Analytics
  • Integrated
db.products.find({ tags : "flowers" }) db.runCommand({ select : "select 1 + 1 as q1" })

Easy to Use Query Language

Don't learn a new query language. Use the powerful MongoDB API's you are familiar with. Amisalabs DDS MongoDB-compatibility means there is zero-learning curve and no lock-in. Tools and applications that currently work with MongoDB should work seamlessly without modification. When it comes to ad hoc queries and rich analytics, Amisalabs DDS provides ANSI SQL Select you can use.

All the features you need, out of the box

Multi Statement Transactions

db.runCommand({ BeginTransaction : 1, mycollection.insert : { <document> }, myOtherCollection.update : { q: , u: , upsert: , multi: }, myLastCollection.delete : { q : <query>, limit : <int> }, ... })

SQL Select

db.runCommand({ select : "select the_count, Count(*) from ( select make, model, count(*) as the_count from listings_collection where condition = 'new' and transmission = 'automatic' group by make, model)" }) db.runCommand({ select : "select item, qty, tags, ArrayLength(tags) as tlen, '$' + price as 'price' from products where qty > 25 and name = 'card' and price between 55.5 and 235.5" })

Multi SQL Select

db.runCommand({ multiSelect : 1, parallelExec : 1, statements : [ "select make, count(*) from listings_collection group by make", "select model, count(*) from listings_collection group by model", "select fuel_type, count(*) from listings_collection group by fuel_type" ] })

Flexible Updates

See Issue collection.update( { _id : 1, "medications._id" : 23, "medications.prescriptions._id" : 77 }, { $set : { "medications.prescriptions.$.quantity" : 30 } }, false, true )

Document Joins

db.runCommand({ findAndJoin : 1, Students.find : { match : {<MongoDB Predicate>}, project : {<MongoDB Projection>}, as : "s", StudentCourses.join : { as : "courses", match : { _id : "$" }, project : {<fields_from_joined_collection>}, <collection>.join : { <Joins can be nested anyhow> } } } })

Select Complex Document {}

db.runCommand({ selectDocument : 1, schema : { $p : "select name, display from users where id = 20", friends : { $s : "SELECT id, name, display, city, education FROM users e INNER JOIN frieds_map s on = s.friend_id WHERE s.userid = $ LIMIT 20", friends_friends : { $e : "select name, display, city from users e inner join friends_map s on = s.friend_id where s.userid = $ and = $" } } } })

Embedded SQL Expressions

db.products.insert( { item: "card", qty: 15, price : "<toDecimal('239.99')>" })

Advanced Search

Amisalabs supports advanced search operations such as combining multiple in-memory indexes to evaluate a query, Apache Lucene (some components) backed text search and also combining the $text operator with the $nearSphere operator. All indexes are isolated from documents and automatically kept in memory.

Amisalabs DDS engine leverages in-memory skip lists to perform index intersection and unioning operations to process your queries. Your queries will run incredibly fast.

Integrated Cache

Amisalabs DDS features a dynamic in-memory object cache to speed up applications. The cache is embedded into the Document Database eliminating network round-trip latency. The memory size of the cache is fully dynamic and continuously changes at runtime.

Amisalabs DDS was designed to keep all indexes in memory at all times to process queries. This service was designed for applications that need to respond to queries at extreme low latencies.

Successful startups and leading companies choose Amisalabs.

"Amisalabs helped simplify our data layer by eliminating our previous architecture which involved Memcached, MongoDB, Solr and MySQL. Today we are not writing integration code as Amisalabs provides us with in-memory indexing, full text search, columnar analytics and storage in one MongoDB Compatible database." Amal Farouk, CTO and founder of Demanjo News.