база данных node.js [закрыта]

112

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

  • CouchDB
  • MongoDB
  • Redis

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

  • 2
    Я думаю, что было бы полезно ответить на вопрос, если будут упомянуты даже более широкие требования. У каждой БД есть свои плюсы, минусы и специальности. Дайте нам знать спецификации!
Теги:
redis
couchdb

11 ответов

79

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

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

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

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

или здесь, в Stackoverflow

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

  • 1
    также посмотрите на mongoose, довольно симпатичную ORM, основанную на / использующую драйвер mongodb для node.js
  • 2
    Мы используем Node.js + MongoDB в течение достаточно долгого времени, и это идет отлично. И слава @christkv, водитель надежен и не подведет вас. Мы с легкостью развернули node.js / express.js + mongodb на EC2. Также обратите внимание, что мы не используем Mongoose. Говоря о проблемах (если вы уже хорошо разбираетесь в Node), вы должны хорошо разбираться в способах Mongo (запросы и агрегирование) для любого серьезного приложения или разработки сервиса. Изучение того, как Mongo отличается от других БД, было бы действительно полезно, если вы все еще находитесь на стадии оценки.
Показать ещё 1 комментарий
24

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

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

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

18

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

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

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

  • 0
    Да, Redis великолепен, но кажется, что мы можем хранить двоичные данные, но не можем их получить! По крайней мере, я не смог найти команду Redis для двоичных данных.
  • 0
    В самом деле? Я использовал для хранения двоичных данных (используя класс буфера Node), и он работал нормально. Какая версия Redis / Node?
Показать ещё 3 комментария
15

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

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

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

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

8

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

из thechangelog.com:

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

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

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

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

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

3

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

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

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

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

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

http://nodeguide.com/convincing_the_boss.html

2

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

1

Еще несколько примеров:

Глобалы: http://globalsdb.org

GT.M(см. https://github.com/robtweed/node-mwire для начальной точки)

M/DB (клон с открытым исходным кодом SimpleDB): https://github.com/robtweed/node-mdb, и вы можете использовать клиента Node.js SimpleDB для доступ к ней: https://github.com/rjrodger/simpledb

1

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

0

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

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню