let result = await Promise.all(model.reviews.map(async (item, index)=>{
console.log('item', item)
console.log('model', model)
let user = await User.findOne({ _id: item.user_id }, function (error, user){
if (error || !user) { return error }
else {
return user
}
})
model.reviews[index].user = user
}))
Существует много альтернатив. Но наличие SQLite, который дает Вам питание SQL, объединенное без суеты хранения файлов, нет никакой потребности искать эти альтернативы. SQLite достаточно легок, чтобы использоваться в сотовых телефонах и MP3-плеерах, таким образом, я не вижу, как это можно было считать излишеством.
Таким образом, если для Вашего приложения не нужно что-то очень определенное, не беспокоиться. Большинство альтернатив намного более твердо использовать и иметь меньше производительности.
Каждый уравнивает от баз данных SQL, ISAM (Индексно-последовательный метод доступа) - в основном таблицы и индексы, но никакой SQL и никакие явные отношения среди таблиц. Пока концептуальное основание соответствует Вашему дизайну, оно масштабируется приятно. Я использовал Кодовую базу эффективно в течение долгого времени.
Если Вы хотите работать с данными типа БД SQL, то рассмотрите FileMaker.
Я проверил бы XML на вашем месте. Посмотрите учебный раздел w3schools XML по левой стороне. Тонны возможностей, не используя базу данных SQL.
Я привык LINQ для XML как источник данных в проекте.NET. Это было небольшим решением и использовало кэширование для смягчения проблем производительности. Я сделал бы это снова для быстрого сайта, который просто должен сохранить данные в общем месте, не увеличивая требования сервера.
In Perl I use DBM or Storable for such tasks. DBM will update automatically when variable is updated.
Зависит от того, что Вы храните и как необходимо получить доступ к нему. Обычно sql обеспечивает большое создание отчетов и ручную способность к управлению. Почти всему нужен некоторый способ управлять тем, что хранится и отчет о нем.
Это, вероятно, зависит, насколько динамичный Ваш веб-сайт. Я использовал программное обеспечение Wiki, после того как это использовало RCS для регистрации и текстовые файлы. Я не рекомендовал бы, что решение для чего-то, что получает столько же обновлений сколько StackOverflow или Википедия. Вещь о базе данных состоит в том, что они масштабируются хорошо, и устройства записи механизма базы данных выяснили все трудные небольшие детали одновременного доступа, выравнивания нагрузки, репликации, и т.д.
Я не выбрал бы, использовать ли базу данных SQL на основе того, сколько данных я хотел хранить - я выберу на основе того, какие данные я хотел хранить и как это должно использоваться.
Wikipeadia определяет базу данных как: база данных является структурированным набором записей или данных, которые хранятся в компьютерной системе. И я думаю, что Ваш ответ заключается там: Если Вы хотите сохранить записи, такие как клиентские счета, права доступа и так далее затем DB, такие как MySQL или SQLite или независимо от того, что не излишество. Они дают Вам испытанный и доверяемый механизм для управления теми записями.
Если с другой стороны, Ваш веб-сайт хранит и поставляет неизменное основанное на файле содержание, такое как PDFs, отчеты, mp3s и так далее затем, просто хранение их в четко определенном расположении каталога на диске более чем достаточно. Я также включал бы XML-документы здесь: если у Вас был, например, производственный отдел, который создал статьи для веб-сайта в формате XML нет никакой потребности поместить их в DB - хранят их на диске и используют XSLT, чтобы поставить им.
Ваш выбор SQL или не будет также зависеть от того, как содержание, которое Вы хотите сохранить, должно быть получено. SQL очевидно хорош для получения многих записей на основе критериев поиска, тогда как дерево каталогов, база данных XML, база данных RDF, и т.д., более вероятно, будет использоваться для получения единственных записей.
Выбор механизма хранения очень важен, когда попытка масштабировать сайт интенсивного трафика и наполнение всего в DB SQL быстро станут узким местом.
Я сказал бы, что это не зависит от того, храните ли Вы меньше или больше информации, это зависит от того, как часто Вы запрашиваете хранившие данные. Databasemanagers превосходны при кэшировании запросов, таким образом, они часто - лучшее мудрое выполнение выбора. Как когда-либо, если Вы не нуждаетесь в динамической веб-странице и просто загружаете статические данные - возможно, текстовый файл является более оптимальным вариантом. То, которые форматируют данные, хранится в (т.е. XML, JSON, key=pair) не имеет значения - это - операции ввода-вывода, которые являются тяжелой производительностью.
Когда я разрабатываю веб-приложения, я всегда использую RDBMS в качестве держателя первичных данных. Если веб-приложение не должно служить динамическим данным в каждом запросе, я просто применяю функциональность кэша, хранящую данные в файле кэша, который требуют, когда нет новых данных были добавлены к основному источнику данных (RDBMS).
Распределенная хеш-таблица как bigtable Google или hadoop является простым и масштабируемым не база данных SQL и часто удовлетворяет веб-сайтам намного лучше, чем база данных SQL. SQL является большим для сложных реляционных данных, но большинство веб-сайтов не имеет этого требования. Большинство веб-сайтов хранит и получает данные в нескольких формах и не должно выполнять сложные операции на данных.
Смотрите на одно из этих решений, поскольку они обеспечат весь параллельный доступ, в котором Вы нуждаетесь, но не подписываете на традиционные идеи нормализации данных. Они могут считаться довольно аналогичными набору именованных текстовых файлов.
SQLite изобретен для этого.
Это - просто плоский файл, который содержит полную базу данных SQL. Можно запросить, обновить, вставить, удалить, нет мало ни к каким издержкам в установке и всем, в чем Вы нуждаетесь, драйвер (который прибывает стандарт в PHP),
SQLite является библиотекой программного обеспечения, которая реализует автономное, без сервера, нулевую конфигурацию, транзакционный механизм базы данных SQL.
Довольно странный, что никто уже не упомянул это?
CouchDB (http://couchdb.apache.org/index.html) является non-sql базой данных и, кажется, популярный проект в эти дни, а также bigtable Google, или GT.M (http://sourceforge.net/projects/fis-gtm), который был вокруг навсегда.
Объектные базы данных имеются в большом количестве также; dbforobjects (http://www.db4o.com/), ZODB (http://www.zope.org/Products/StandaloneZODB), только для именования некоторых.
Все они, предположительно, быстрее и более просты, чем традиционные базы данных SQL для определенных вариантов использования, но ни один не приближается к простоте плоского файла.
Это зависит, что Вы храните. Мой блог использует Blosxom (записанный в Perl, но подобная вещь могла быть сделана для PHP), где каждая отдельная запись является отдельным текстовым файлом. Первая строка является простым текстом (заголовок), и остальное - неограниченный HTML. После нескольких простых правил они представляются для формирования простой, но эффективной платформы блоггинга.
Это действительно имеет недостатки, но это также означает, что каждое сообщение является дискретным файлом, который работает хорошо на обновление на локальной машине и затем публикацию к удаленному веб-серверу. Это ограничено когда дело доходит до эффективных запросов, хотя, поэтому конечно, не хороший выбор, если Вы хотите мелкомодульное управление и веб-взаимодействие с Вашими данными.