Skip to content

Instantly share code, notes, and snippets.

@hyrmn
Created May 11, 2015 02:41
Show Gist options
  • Select an option

  • Save hyrmn/0f1824a116cb08f54c3e to your computer and use it in GitHub Desktop.

Select an option

Save hyrmn/0f1824a116cb08f54c3e to your computer and use it in GitHub Desktop.
Batch patching with Raven 2.5
var patchCommands = new List<ScriptedPatchCommandData>();
foreach (var relatedDocument in relatedDocuments)
{
var photo = new Photo
{
Url = imageMetadata.Id,
Title = imageMetadata.Title,
Description = imageMetadata.Description,
SortOrder = relatedDocument.Value,
};
patchCommands.Add(new ScriptedPatchCommandData
{
Key = relatedDocument.Key,
Patch = new ScriptedPatchRequest()
{
Script = @"
if(!_.has(this, 'Photos')) {
_.extend(this, { 'Photos': []});
}
this.Photos.RemoveWhere(function(photo) {
return photo.Url === url;
});
this.Photos.push(newPhoto);",
Values =
{
{"url", imageMetadata.Id},
{"newPhoto", RavenJObject.FromObject(photo)}
}
}
});
}
_session.Advanced.GetDatabaseCommands().Batch(patchCommands);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment