Why not put c in a separate doc? Maybe with the same doc id but a
'-c' suffix. Then you can pull it whenever you wish as a second read
by id. You could also use the new {_id: "<id>-c"} feature to include
c.
On Tue, Aug 16, 2011 at 6:43 AM, Zachary Zolton
<[email protected]> wrote:
> Another alternative would be to store this additional, large data as
> an attachment to the documents. This would allow you to access the
> data for an individual document when needed, but would avoid any view
> indexing overhead.
>
> —Zach
>
> On Tue, Aug 16, 2011 at 8:23 AM, Gabor Ratky <[email protected]> wrote:
>> You're not thinking about it in the wrong way. Keeping document sizes low is
>> crucial for views to perform in an acceptable manner (documents 500kb-1mb
>> will get the view indexer into a screeching halt because of the JSON
>> encoding/decoding overhead).
>>
>> Our solution to a very similar problem was having a separate database
>> (without views, although this was just a side-effect) with the exact same
>> document IDs containing this large data. This way it won't affect your usual
>> scenarios but you can retrieve it from the other DB when needed. Of course,
>> this separation has to happen when creating the documents or as a separate
>> process afterwards that you will need to code manually, although you could
>> use something like https://github.com/maxogden/recline or kanso.js document
>> transformation, but IMHO these are not the right tools for your particular
>> problem.
>>
>> HTH,
>> Gabor
>>
>>
>> On Tuesday, August 16, 2011 at 2:32 PM, Antoine Kurukchi wrote:
>>
>>> I might be thinking of this in the wrong way.
>>>
>>> I already have the doc and rev id. I'm trying to get the doc without c as c
>>> has quite a lot of data. Which isnt required till much later and even then
>>> only a few will be needed.
>>>
>>> The whole database without c is about 25mb. With c its 2 gb.
>>>
>>> I dont want to seperate c from the other data.
>>>
>>> Any thoughts?
>>>
>>> On Aug 16, 2011 1:21 PM, "Gabor Ratky" <[email protected]
>>> (mailto:[email protected])> wrote:
>>> >
>>> > A view, as its name implies is a read-only view of the underlying data.
>>> You can omit emitting `c` in the view, but all that will mean that it will
>>> not be included in the view itself (either as its key or its value), but it
>>> will still exist in the underlying documents.
>>> >
>>> > You could potentially emit the whole document MINUS the `c` field as part
>>> of the view, but it would result in a huge view, whereas usually you would
>>> just use `include_docs=true` parameter to query the document itself along
>>> with the view.
>>> >
>>> > Maybe you could explain what exactly you're trying to achieve in further
>>> detail?
>>> >
>>> > Gabor
>>> >
>>> >
>>> > On Tuesday, August 16, 2011 at 2:13 PM, Antoine Kurukchi wrote:
>>> >
>>> > > Is it possible in a view to remove a field if present and has anyone got
>>> an
>>> > > example? I would like to keep all other fields. Also this will be with
>>> > > different documents.
>>> > >
>>> > > For example my document has 3 fields a,b,c. Another document has
>>> b,c,d,g. So
>>> > > I want the view to process both those documents and remove c. Should
>>> have
>>> > > the following as the result:
>>> > >
>>> > > a,b and b,d,g
>>> > >
>>> > > Antoine
>>
>>
>