Thursday, 19 September 2013

Adding key value to RavenDB document based on another document's values (For all documents in large collection)

Adding key value to RavenDB document based on another document's values
(For all documents in large collection)

I am new to RavenDB and could really use some help.
I have a collection of ~20M documents, and I need to add a key to each
document. The challenge is that the value of the key needs to be derived
from another document.
For instance, given the following document:
{
"Name" : "001A"
"Date" : "09-09-2013T00:00:00.0000000"
"Related" : [
"002B",
"003B"
]
}
The goal is to add a key that holds the dates for the related documents,
i.e. 002B and 003B, by looking up the related documents in the collection
and returning their date. E.g.:
{
"Name" : "001A"
"Date" : "09-09-2013T00:00:00.0000000"
"Related" : [
"002B",
"003B"
]
"RelatedDates" : [
"08-10-2013T00:00:00.0000000",
"08-15-2013T00:00:00.0000000"
]
}
I realize that I'm trying to treat the collection somewhat like a
relational database, but this is the form that my data is in to begin
with. I would prefer not to put everything into a relational dataset first
in order to structure the data for RavenDB.
I first tried doing this on the client side, by paging through the
collection and updating the records. However, I quickly reach the maximum
number of request for the session.
I then tried patching on the server side with JavaScript, but I'm not sure
if this is possible.
At this point I would greatly appreciate some strategic guidance on the
right way to approach this problem, as well as, more tactical guidance on
how to implement it.

No comments:

Post a Comment