Я хотел бы подойти прямо к делу и показать вам свои данные образца, что составляет примерно в среднем 180 000 строк из CSV файла, поэтому много строк. Я читаю в.csv с папапарсом. Затем я сохраняю данные как массив объектов, который выглядит следующим образом:
Я просто использовал эту картинку, так как вы также можете увидеть все свойства, которые мои объекты имеют или должны иметь. Данные взяты из данных трансграничных СМИ, которая является открытым исходным кодом и показывает платежи между институтами.
Массив объектов сохраняется с помощью технологии localforage, которая в основном представляет собой IndexedDB или WebSQL с локальным ресурсом, например API. Поэтому я сохраняю данные никогда на одном! Только в клиенте!
Вопрос. Итак, теперь мой вопрос: пользователь может добавлять sourceHash
и/или targetHash
в клиентский интерфейс. Например, предположим, что пользователь загрузил объект "Energie Steiermark Kunden GmbH" и теперь добавляет к нему sourceHash
- "компания". Так что в основном тег. Это уже отражено в клиенте и показано, однако мне нужно получить это также в localforage и, следовательно, переписать начальный массив объектов. Поэтому мне нужно будет искать каждый объект в моем огромном массиве 180 000 строк, который имеет название "Energie Steiermark Kunden GmbH", так как может быть несколько и установить свойство sourceHash
в "компанию". Затем сохраните его снова в локальном проекте.
Первый вопрос: как сделать это наиболее эффективным? Я могу получить данные из localforage, используя следующий метод и установить его соответственно.
Получить:
localforage.getItem('data').then((value) => {... });
Задавать:
localforage.setItem('data', dataObject);
Однако вопрос в том, как я могу сделать это наиболее эффективно? Я имею в виду, если sourceNode
начинается только с "E", например, нам не нужно искать все sourceNode
. То же самое можно targetNode
о targetNode
.
Заранее спасибо!
ОБНОВЛЕНИЕ: Спасибо за ответы уже! И как бы вы сделали это наиболее эффективным способом в Javascript? Я имею в виду, что это возможно сделать в нескольких строках. Если мы предположим, что у меня есть, например, текущая sourceHash-компания, и вы хотите назначить ее каждому узлу, начинающемуся с "Energie Steiermark Kunden GmbH", который появляется во все временаNode. Это может быть 20151, 20152, 20153, 20154 и так далее...
Localforage - это только localStorage
/sessionStorage
-like обертка над фактическим механизмом хранения, и поэтому он предлагает вам только ключевые возможности localStorage
. Короче говоря, нет более эффективного способа сделать это для произвольных запросов.
Это больше похоже на случай IndexedDB, так как вы можете определить индексы поиска по данным, например, для sourceNode
s, и делать более эффективные запросы таким образом.