After using couchbase for over 4 years, we migrated to MongoDB and that was the best decision ever! I'm very disappointed with Couchbase's technical performance. Even though we received enterprise support and were a listed Couchbase Partner, the experience was horrible. With every contact, the sales team was trying to get me on a $7k+ license for access to features all other open source NoSQL databases get for free.
Here's why you should not use Couchbase
Full-text search Queries The full-text search often returns a different number of results if you run the same query multiple types
N1QL queries Configuring the indexes correctly is next to impossible. It's poorly documented and nobody seems to know what to do, even the Couchbase support engineers have no clue what they are doing.
Community support I posted several problems on the forum and I never once received a useful answer
Enterprise support It's very expensive. $7k+. The team constantly tried to get me to buy even though the community edition wasn't working great
Autonomous Operator It's actually just a poorly configured Kubernetes role that no matter what I did, I couldn't get it to work. The support team was useless. Same lack of documentation. If you do get it to work, you need 6 servers at least to meet their minimum requirements.
Couchbase cloud Typical for Couchbase, the user experience is awful and I could never get it to work.
The minimum requirements in production are 6 servers. On AWS the calculated monthly cost would be
~$600. We achieved better performance using a
$16 MongoDB instance on the Mongo Atlas Cloud
writing queries is a nightmare While N1QL is similar to SQL and it's easier to write because of the familiarity, that isn't entirely true. The "smart index" that Couchbase advertises is not smart at all. Creating an index with 5 fields, and only using 4 of them won't result in Couchbase using the same index, so you have to create a new one.
The UI that comes with every database deployment is full of bugs, barely functional and the developer experience is poor. When I asked Couchbase about it, they basically said they don't care because
real developers use SQL directly from code
Consumes too much RAM
Couchbase is shipped with a smaller Memcached instance to handle the in-memory cache. Memcached ends up using
8 GB of RAM for 5000 documents! I'm not kidding! We had less than 5000 docs on a Couchbase instance and less than 20 indexes and RAM consumption was always over 8 GB
Memory allocations are useless I asked the Couchbase team a question: If a bucket has 1 GB allocated, what happens when I have more than 1GB stored? Does it overflow? Does it cache somewhere? Do I get an error? I always received the same answer: If you buy the Couchbase enterprise then we can guide you.
I agree with you. What's more, Mongo provides really powerful tool which is Aggregation Framework. With it's pipes you can model the data any way you wish. Interesting thing is that the Couchbase team criticized it for being complex solution - https://blog.couchbase.com/couchbases-n1ql-query-shatters-the-limits-of-mongodb/ . I'd argue - Aggregate Framework save a lot of my time, allowing me for data processing that was pretty much impossible to do with n1ql or sql queries in a performant, clean way. Sorting on aggregated column in paginated table is one simple example. While sorting and paging is covered well, aggregation functions in SQL and their further processing in pipeline feels incredibly dumb after using Mongo Aggregate Framework for some custom scenarios.
Mongo is my number 1 pick for apps like admin panels or dashboards hosted on premise.
I agree. Couchbase is lying about its performance. Advanced features are only available in the enterprise version.
I agree with you on most of the points, and I can add that as a paid customer (enterprise) the support is very bad. I am getting better support on the forum/community than the paid one through support. But regarding performance, I don't agree. I have been able to achieve 1.6M operations per second on 3 servers and a DB of 22 TB.
i agree with you