CouchDB простая находка - PullRequest
5 голосов
/ 18 мая 2011

У меня есть couchDB база данных.и я хочу, как в mongodb, найти один предмет.что-то вроде db.find({user : "John"}) что самый простой способ сделать это?

Ответы [ 5 ]

4 голосов
/ 18 мая 2011

Если у вас предварительно определены запросы, вы можете использовать просмотров для запросов к вашей базе данных.

Также есть возможность использовать временных представлений для специальных запросов.поиски, но они никогда не рекомендуются для производственного использования, потому что индекс не сохраняется.

Если вам нужно что-то более похожее на полнотекстовый поиск, посмотрите couchdb-lucene .

1 голос
/ 04 августа 2011

Я предпочитаю использовать asticsearch . У него есть couchdb _river для интеграции. Он будет прослушивать _changes couchdb, а затем извлекать и индексировать документы.

Таким образом вы получаете потрясающую мощь эластичного поиска (работающего на lucene) с его интерфейсами RESTful и возможностью кластеризации.

Вы получаете хорошее разделение поиска и ваших основных документов. Это означает, что вы можете индексировать и искать в разных хранилищах документов.

По общему признанию, вы не получаете хороший маленький все в одной упаковке, но для гибкости для моих случаев использования он выигрывает руки.

1 голос
/ 18 мая 2011

Какой язык программирования вы предпочитаете? API CouchDB основан на HTTP. По сути, вы можете настроить представление, которое использует имя пользователя в качестве ключа и выполнить запрос через HTTP-запрос или с помощью «драйвера» для вашего конкретного языка.

Виды определяются как функции отображения / уменьшения. Легкое введение можно найти на официальной вики , например. Также обратите внимание на руководство CouchDB - хорошее место для начала.

0 голосов
/ 20 января 2015

Существует инициатива по реализации поиска, подобного монго, с синтаксисом запроса , предложенным mongo db .Cloudant объявил об этой инициативе, и они начали вносить свой вклад через mango , интерфейс языка запросов, вдохновленный MongoDB для Apache CouchDB.

Проект Cloudant должен разрешать запросы такого типа find({user : "John"}), find({user:{$in : ["Doe", "Smith"]}}) илиfind({"age": {"$gt": 21}}) для age > 21

Аналогичная альтернатива pouchdb-find также разрабатывается для пакета db.

0 голосов
/ 19 мая 2011

У меня есть новый проект для этого: http://github.com/iriscouch/query_couchdb

(Надеюсь, я смогу добавить вступление и документацию сегодня.)

Идея состоит в том, чтобы скопировать Python API Google App Engine.

new Query("User")
    .filter("name =", "John")
    .order('-age')
    .get(function(er, view) {
        if(er)
            throw(er);

        console.log("Got " + view.rows.length + " rows!");
        for(var a = 0; a < view.rows.length; a++) {
            var row = view.rows[a];
            console.log("Row " + a + " = " + JSON.stringify(row));
        }
});

К сожалению, в нем отсутствуют модульные тесты и примеры, но я уже использую это в работе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...