CouchBase, смешанный с Memcached, утратил большую часть философии и функциональности CouchDB?

На данный момент, единственный способ, которым я работал с более новыми версиямиCouchBase, черезКлиент memcached, я используюErlang как язык программирования, и поэтому я схватил себяErlang Memcached Клиент, Я заметил, что этот клиент сериализует и десериализует термины эрланга (и ключ, и значение), преобразовывая их из двоичного кода в двоичный и обратноerlang:term_to_binary/1 and erlang:binary_to_term/1 при отправке и получении данных отMemcached.

При настройке CouchBase нас просят выбрать либо корзины memcached, либо корзины CouchBase (vbuckets). Теперь я выбрал CouchBase (потому что мне нужно было постоянство). Я начал взаимодействовать с установкой, используя клиент erlang memcached, и это нормально, я сохраняю термины erlang и возвращаю термины erlang из базы данных. Однако проблемы начинаются здесь:

1. Из-за сериализации данных объекты принимаются как вложения. Даже если они отправляются как JSON из Erlang, они отправляются как двоичные данные, которые не имеют никакого значения для CouchBase (или Memcached?)

{ 
    "_id": "mykey",
    "_rev": "1-000010fb1a2b02ef0000000d59960000",
    "$flags": 38489, 
    "$expiration": 0,
    "$att_reason": "invalid_json",
    "_attachments": {
    "value": {
                "content_type": "application/content-stream",
                "revpos": 2,
                "digest": "md5-n3mJhf2kKVQtkIunIbCJZQ==",
                "length": 13,
                "stub": true
            }
        }
    }

2. В результате этого, эти данные не могут быть найдены, манипулировать черезCouchDB просмотров, Единственный способ получить данные - это «Ключ», однако вложенный объект может быть. С оригинальной Couch DB мы могли бы написатьРасширенные виды, Карта уменьшить искать и манипулировать данными JSON в базе данных e.t.c

3. Следовательно, мы не можем четко использовать такие вещи, как:Couch Apps а такжеПроектная документация с Couch Base, как мы привыкли делать с Couch DB, потому что эти функции предназначены для обработки данных JSON в Couch.

Вопросов
1. Я понимаю, что CouchBase смотрит на подход, отличный от CouchDB, однако, как разработчик, я чувствую, что многое у нас отняли. Нет больше Couch Apps, Design Docs, Views, e.t.c?
2. Возможно, я что-то здесь не так, может кто-нибудь показать мне, как я все еще могу делать все это с Couch Base, как я делал с оригинальной Couch DB?
3. Есть ли другой способ вставки, чтения или обновления данных в Couch Base 1.8 и выше (с использованием erlang), кроме Erl, ang memcached клиент? Это связано с тем, что существует сериализация данных, которая делает эти данные бесполезными для других технологий в рамках того же проекта, поскольку они могут быть не в состоянии декодировать структуры данных Erlang.
4. В мультиязычном проекте, где у нас есть PHP Developers, C ++, Erlang, Ruby e.t.c. работая с одним и тем же экземпляром Couch Base (база данных), с сериализацией данных, как мы должны получать доступ и понимать данные во всех технологиях?

Кто-то помогает указать на изменения с CouchDB на Couch Base, объясните, почему новая Couch Base так привязана к Memcached, что мы вынуждены использовать клиенты memcached для общения с CouchBase. Кроме того, если есть еще один Erlang-to-CouchBase SDK, который может помочь мне передавать JSON (а НЕ сериализованные данные) с и на Couch Base, я хочу взять его на руки.

** РЕДАКТИРОВАТЬ **
Предположим следующее: CouchBase x86_64 1.8.0 и Erlang OTP R15B. Мне нужно работать с данными JSON в Couch Base, чтобы в большом многоязычном проекте наши приложения работали с одним и тем же набором данных без проблем с сериализацией. Спасибо

Ответы на вопрос(3)

Ваш ответ на вопрос