Самый идеальный способ обновить коллекцию RavenDB без индекса.

Я хочу обновить коллекцию документов, которые динамически запрашиваются, например. без индекса. Вот (псевдо) образец, который работает:

void ChangeOwnerShip(string oldName, string newName) {

    var collection = session.Query<GummyBears>()
        .Where(p => p.OwnerName == oldName);

    foreach (var doc in collection) {
        doc.OwnerName == newName;
    }

    session.SaveChanges();
}

В приведенном выше примере я не учитываю ограничение на количество документов, которые вы можете и можете запросить у RavenDB ("безопасно по умолчанию"). Но проще говоря: это работает. Я не создал индекс для этого, и RavenDB отображает динамический индекс при использовании, который, похоже, работает нормально.

Но со всеми изящными функциями RavenDB я убежден, что это не самый идеальный способ сделать это.

Образцы, представленные для частичного обновления документов, пакетных операций, похоже, разработаны для этой цели. Однако все образцы, похоже, относятся только к одному документу, и я не могу найти достойного объяснения того, как заставить это работать с коллекцией объектов.

Кроме того, в HTTP API есть несколько достойных примеров операций с несколькими документами. . На самом деле в разделе Установить обновления представлен именно тот сценарий, которого я хочу достичь. Однако для этого сначала необходимо создать индекс.

Тем не менее, я не могу найти достойный пример того, как просто обновить динамическую коллекцию с помощью клиента .NET. Короче говоря, вопрос таков: что было бы лучше или более целесообразно при простом обновлении коллекции, чем мой пример выше?


person Juliën    schedule 09.09.2014    source источник


Ответы (1)


Если у вас небольшая коллекция, то подойдет. RavenDB создаст для вас индекс за кулисами.

person Ayende Rahien    schedule 10.09.2014