JSON в localforage, эффективный способ обновления значений свойств (Binarysearch и т. Д.)?

1

Я хотел бы подойти прямо к делу и показать вам свои данные образца, что составляет примерно в среднем 180 000 строк из CSV файла, поэтому много строк. Я читаю в.csv с папапарсом. Затем я сохраняю данные как массив объектов, который выглядит следующим образом: Изображение 174551

Я просто использовал эту картинку, так как вы также можете увидеть все свойства, которые мои объекты имеют или должны иметь. Данные взяты из данных трансграничных СМИ, которая является открытым исходным кодом и показывает платежи между институтами.

Массив объектов сохраняется с помощью технологии 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 и так далее...

  • 0
    если sourceNode начинается только с «E», например, нам не нужно искать все sourceNode. В самом деле? Как вы узнали бы, что их sourceNode не начинается с E, если вы не просматриваете их?
  • 0
    Ну, я описал это плохо, я думаю. Если имя узла источника - «Energie Steiermark Kunden GmbH», нам не нужно искать дальше вниз, потому что узел источника может появляться в разных кварталах, например, 2016/1 2016/2 и т. Д., Но нам нужно только найти это конкретный узел.
Теги:
local-storage

1 ответ

0

Localforage - это только localStorage/sessionStorage -like обертка над фактическим механизмом хранения, и поэтому он предлагает вам только ключевые возможности localStorage. Короче говоря, нет более эффективного способа сделать это для произвольных запросов.

Это больше похоже на случай IndexedDB, так как вы можете определить индексы поиска по данным, например, для sourceNode s, и делать более эффективные запросы таким образом.

  • 0
    localforage возвращается к localStorage только тогда, когда недоступны ни IndexedDB, ни WebSQL ...
  • 0
    Да, но он предоставляет только API-значение ключа типа localStorage, независимо от того, какой бэкэнд он использует.
Показать ещё 1 комментарий

Ещё вопросы

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