Let's say I've got a model with a BlobProperty() holding data up to 2
MB. Take this for example:
class SomeDataFile(db.Model):
title = db.StringProperty()
data = db.BlobProperty()
Now imagine I'd just want to fetch the title property for the items in
this model. if I'd query the model, then the datastore would fetch the
data property for every item. As far as I know, there's no way to ask
the datastore to select specific fields, making this query extremely
heavy since each data property would be fetched as well (which might
be 2 MB / item).
I thought I might solve this by using another table for the actual
data, and then reference it in the SomeDataFile model as such:
class Data(db.Model):
data = db.BlobProperty()
class SomeDataFile(db.Model):
title = db.StringProperty()
data = db.ReferenceProperty(Data)
But as it turns out, referenced items are included in the result
making it equally heavy.
One solution might be to do this instead:
class Data(db.Model):
data = db.BlobProperty()
class SomeDataFile(db.Model):
title = db.StringProperty()
data = db.StringProperty()
Where SomeDataFile.data is a string value of the key for the Data
item. But is that really a good solution?
So the question is:
How do you NOT fetch a BlobProperty in a model (you want everything
but the Blob)? How would you model that?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google App Engine" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/google-appengine?hl=en
-~----------~----~----~----~------~----~------~--~---