#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?