Changes between Version 20 and Version 21 of NoSqlSupport
- 06/30/2011 03:24:23 PM (4 years ago)
v20 v21 87 87 Implementation status:: Django-nonrel's App Engine backend currently just limits the maximum count to 1000. Other backends don't have a `count()` limit, but that might lead to inefficient queries. 88 88 89 = !ListField = 89 = Fields added in djangotoolbox = 90 91 == !ListField == 90 92 91 93 NoSQL DBs use `ListField` in a lot of places. They are basically a replacement for `ManyToManyField`. BTW, some SQL DBs have a special array type which could also be supported via `ListField`. … … 93 95 This is already implemented in Django-nonrel. 94 96 95 = !SetField= 97 == 96 98 97 99 Another useful type is `SetField` which stores a set instead of a list. On DBs that don't support sets this field can be emulated by storing a list, instead. This is the approach taken by Django-nonrel's App Engine backend. … … 99 101 This is already implemented in Django-nonrel. 100 102 101 = !DictField= 103 == 102 104 103 105 MongoDB and other databases use `ListField` in combination with `DictField` to completely replace `ManyToManyField` in a lot of cases. Django currently doesn't provide an API for querying the data within a `DictField` (especially if it's embedded in a `ListField`). Ideally, the query API would just use the `foo__bar` JOIN syntax. … … 105 107 The field is already implemented in Django-nonrel, but lookups aren't supported, yet. 106 108 107 = !EmbeddedModelField= 109 == 108 110 109 111 This is a field which stores model instances like a "sub-table within a field". Internally, it's just a `DictField` which converts model instances to/from dicts. In addition to the `DictField` issues this field also has to call the embedded fields' conversion functions, which again requires special support if the JOIN syntax should be supported. … … 111 113 The field is already implemented in Django-nonrel, but lookups aren't supported, yet. 112 114 113 = !BlobField= 115 == 114 116 115 117 Many databases provide support for a raw binary data type. Many App Engine developers depend on this field to store file-like data because App Engine doesn't provide write access to the file system (there is a new Blobstore API, but that doesn't yet allow direct write access). … … 117 119 This is already implemented in Django-nonrel. 118 120 119 = !ImageField= 121 == 120 122 121 123 Currently, !ImageField depends on PIL. It might be necessary to provide a backend API for sandboxed platforms (like App Engine) that don't provide PIL support.