Лучшая практика для хранения JSON объектов как свойств в RavenBD? - PullRequest
3 голосов
/ 07 мая 2020

Я пытаюсь сохранить документ JSON (в основном Newtonsoft JObject в. Net) как свойство класса.

public class Something
{
  public JObject ConfigurationData
  {
    get;set;
   }

    ...
}

В основном это произвольные JSON данные конфигурации, которые не являются t известен заранее и должен быть доступен для поиска по индексу ravendb, также необходимо иметь возможность обходить его программно, использовать для него JSONPath и т. д. c. Желательно без необходимости конвертировать его туда и обратно во что-то еще.

Я читал о динамическом c индексировании, BlittableJsonReaderObject et c et c, но я не могу найти простой пример с приведенным выше, и некоторые вещи, похоже, изменились с 4.0

Если я правильно понимаю, BlittableJsonReaderObject больше предназначен для хранения необработанных json и чтения его как объекта. Должен ли я просто сохранить его как JObject? Или есть способ получше?

1 Ответ

1 голос
/ 08 мая 2020

Почему бы не сохранить ConfigurationDatajson как String? Он будет доступен для поиска в FTS RavenDb, и вы также можете определить Text Analyzers в этом поле в индексах RavenDB.

Подпишитесь на событие OnBeforeConversionToDocument и преобразовать JObject в строку См. https://ravendb.net/docs/article-page/4.2/Csharp/client-api/session/how-to/subscribe-to-events#onbeforeconversiontodocument

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...