Хранение массивов и объектов JS в базе данных

#javascript #database #nosql

#javascript #База данных #nosql

Вопрос:

У меня есть приложение, которое позволяет пользователям создавать вещи на JS. Я хочу, чтобы пользователь мог сохранять текущее состояние своей работы, чтобы повторно использовать ее или делиться ею, но у него есть коллекция объектов JS, хранящихся в массиве JS, С очень разными свойствами (цвет, метка, положение x / y, размер и т. Д.).

SQL кажется ужасным для этой конкретной задачи, заставляя меня поддерживать таблицы для каждого отдельного объекта, и, увы, я очень мало знаю о базе данных NoSQL. Какие инструменты вы бы использовали для этого? MongoDB звучит многообещающе, но прежде чем я изучу совершенно новую парадигму БД, я хочу быть уверенным, что двигаюсь в правильном направлении.

Ответ №1:

Объект в строку:

Вы можете хранить свои объекты в БД в виде строки JSON. Вот простой пример:

 var foo = new Object();
foo.Name = "James";
foo.Gender = "Male";

//Result: {"Name":"James","Gender":"Male"}
var stringRepresentation = window.JSON.stringify(foo);
 

Вот рабочая скрипка.

Строка для объекта:

Чтобы преобразовать вашу строку обратно в объект, просто вызовите window.JSON.parse() :

 var myObject = window.JSON.parse(stringRepresentation);
 

Вот рабочая скрипка.

Комментарии:

1. Я не слишком уверен в JSON.stringify, поскольку мои объекты содержат методы, и в прошлый раз, когда я проверял, это выдало бы мне ошибку типа:/ см. Это, Например: jsfiddle.net/cyddle/49fdu функция не является строковой

2. @Downvoter, могу я спросить, почему? Мой ответ такой же, как и три других ответа, только с более подробной информацией. Это также является принятым ответом. Почему понижающий голос?

Ответ №2:

Если вы не заинтересованы в запросе объектов для их различных свойств, а сохраняете их только для сохранения состояния, вы можете сериализовать весь массив в JSON и сохранить его в любой БД, которая вам нравится, как одну строку.

Ответ №3:

Что на сервере?

Большинство языков имеют зрелые реализации JSON, которые преобразуют объекты JavaScript в собственные типы, которые затем можно легко сохранить в базе данных SQL.

Комментарии:

1. на сервере пока ничего нет, это 100% проект HTML5 / JS, поэтому я могу выбрать что угодно. У меня нет способа предсказать размер конечного массива для хранения, поэтому я предполагаю, что моя таблица будет состоять из идентификатора и большого двоичного объекта huuuuge?