Node.js база данных

Я ищу базу данных для соединения с приложением node.js. Я предполагаю, что json/nosql db предпочтительнее реляционной БД [я могу обойтись без несоответствия импеданса json/sql]. Я рассматриваю:

  • CouchDB
  • MongoDB
  • Redis

У кого-нибудь есть какие-либо взгляды/военные истории, совместимость/развертывание выше с помощью node.js? Любые четкие фавориты?

Ответ 1

Я разработчик драйвера mongodb для node.js. Я использую mongodb для своих собственных проектов и очень доволен работой mongodb.

Драйвер Mongodb для node.js

(Бесстыдный плагин) Не стесняйтесь задавать любые вопросы о драйвере в

Группа Google для драйвера mongodb

или здесь, в Stackoverflow

Удачи с node.js. Я абсолютно люблю платформу: D

Ответ 2

Хотя ваш выбор очень сильно зависит от функций, которые вы собираетесь использовать, я действительно ценю CouchDB для его родной среды JavaScript. И данные, и представления написаны на JavaScript, поэтому он очень хорошо подходит для node.js, на мой взгляд.

Существуют также различные клиентские библиотеки, некоторые из них довольно низки, другие действительно очень абстрактны.

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

Ответ 3

Redis - популярный выбор. Зачем вам нужен драйвер базы данных, который не блокируется.

Все перечисленные вами базы данных очень разные. Redis берет на себя идею хранения ключей и работает с ним, добавляя различные типы данных и способы запроса данных. Люди часто отмечают, что redis также очень хорошо масштабируется; что означает, что у него очень низкие накладные расходы, несмотря на способность выполнять.

Ниже приведен список доступных модулей базы данных: http://wiki.github.com/ry/node/modules#database

Ответ 4

Мне очень нравится CouchDB. Это немного кривая обучения, но представления действительно мощные, как только вы понимаете, как их использовать. Существует модуль под названием cradle on github и npm, с которым очень легко работать. Я не смог проверить, насколько быстро он работает, но он очень гибкий (вы можете получить доступ к своим данным в браузере, если хотите).

Основная проблема заключается в том, какой дизайн базы данных имеет смысл для вашего приложения. У вас есть данные, которые в основном имеют ключевое значение в природе? Если это так, используйте Redis. У вас есть данные, где не все документы обязательно имеют одинаковые поля? Если это так, используйте базу данных NoSQL, такую ​​как CouchDB.

Следующая худшая вещь для использования базы данных блокировки - использование неправильной базы данных для ваших данных. CouchDB управляется Apache, поэтому вы знаете, что это хорошее качество, но использовать его не имеет смысла, если ваши данные будут иметь больше смысла в таблице SQL или в простом хранилище ключей.

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

Ответ 5

Возможно, вы захотите проверить Persistence, систему высокого уровня/систему базы данных для node.js.

из thechangelog.com:

Стойкость - это проект, позволяющий API высокого уровня для хранения данных между процессами. Цель состоит в том, чтобы поддерживающие бэкэнды, которые просты в использовании, мощный, гибкий или все выше, если это возможно.

Поддерживаемые базы данных:

  • PostgreSQL - уровень предприятия реляционная база данных. Водитель реализован в чистом JavaScript и обменивается данными через TCP, используя Протокол проводки PostgreSQL.
  • Sqlite3 - Простая, быстрая, без сервера реляционная база данных. Этот драйвер является оберткой вокруг командной строки sqlite3 программа. Для этого требуется, чтобы sqlite3 находился в путь. Сообщение очень быстро, но тип arent очень точный. Есть только строки и nulls возвращены.
  • MongoDB - A масштабируемый, высокопроизводительный, открытый источник, без схемы, документированный база данных. Этот драйвер также реализует проводной протокол в JavaScript и передается с сервером через TCP.
  • JSON-DB - встроенная система без схем, ориентированная на документы база данных, в которой используются простые плоские файлы содержащих объекты JSON. Это не имеет требования вообще, кроме node и файловая система. Производительность должна быть определяется после его осуществления полностью.

Ответ 6

Отказ от ответственности: я автор.

Возможно, посмотрите BarricaneDB, объявленный здесь.

Ответ 7

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

Вы анализируете каналы твиттера или другие данные большого объема для шаблонов, но не нуждаетесь в транзакционной поддержке? Тогда выберите что-то очень быстро.

Вы просто хотите сохранить некоторую действительно базовую информацию в нескольких таблицах и ее не в настоящее время не "ориентированное на предприятие" приложение? Затем выберите что-нибудь классное, чтобы узнать.

Возможно, вы собираетесь хранить данные, которые действительно важны для клиента, надежные, должны быть транзакционными и иметь живую репликацию на удаленные объекты хостинга и т.д. Тогда, возможно, посмотрите на что-то вроде postgresql. Это тоже не отразится, но драйвер node.js работает очень хорошо, и если вы не смертельно опасаетесь sql, он легко получает то, что вы хотите/вне.

Что касается моего собственного мнения, я думаю, что переход с более новым стекем, вроде node.js(против традиционных фреймворков в php/java), добавляет достаточно "новой" сложности, из-за которой нельзя добавлять дополнительные слои одновременно. Это хорошая статья, в которой говорится, что:

http://nodeguide.com/convincing_the_boss.html

Ответ 8

Я буду говорить по своему опыту: CouchDB поставляется с определенной кривой обучения, тогда как MongoDB мне очень легко учиться и настраиваться. Я никогда не использовал redis. Я предлагаю MongoDB - но это, возможно, бесстыдный фанатизм - у меня нет цифр, хе-хе, только утверждения о простоте использования.

Ответ 9

dirty - еще одно хранилище ключей. Как следует из названия, это быстрое и грязное, но эффективное решение для простых случаев. Я не автор:)

Ответ 11

Я нашел CouchDB очень легко освоить. В Интернете есть много электронных книг, которые научат вас использовать CouchDB с Node.js.

Я нашел эту книгу очень полезной для изучения CouchDB.

Для использования CouchDB с Node.js, я использую NANO модуль.

CouchDB может быть размещен на Iriscouch или Cloudant.