Commit Graph
48 Commits
Author SHA1 Message Date
Ross Lawley 7312db5c25 Updated docs / authors.
Thanks @jorgebastida for the awesome query_counter test context manager.
2011-06-06 11:07:27 +01:00
Ross Lawley ec7effa0ef Added DereferenceBaseField class
Handles the lazy dereferencing of all items in a list / dict.
Improves query efficiency by an order of magnitude.
2011-06-06 11:04:06 +01:00
Ross Lawley 5d778648e6 Inital tests for dereferencing improvements 2011-05-27 11:33:40 +01:00
Ross Lawley c903af032f Added inline_map_reduce functionality
Also added map_reduce method for calculating item_frequencies
Closes #183
2011-05-26 15:44:43 +01:00
Ross Lawley 9dd3504765 Updated changelog 2011-05-26 11:56:56 +01:00
Ross Lawley 97a1310344 Tweakin test 2011-05-26 11:11:00 +01:00
Ross Lawley 5ab13518db Added test confirming order_by reference field doesnt work 2011-05-25 13:50:52 +01:00
Ross Lawley eb892241ee Added regression test for editting embedded documents
Closes #35
2011-05-25 13:31:01 +01:00
Ross Lawley fac3f038a8 Added regression test for issue with unset and pop
Closes #118
2011-05-25 12:20:56 +01:00
Ross Lawley b1cdd1eb26 Updated docs regarding ReferenceFields
Closes #149
2011-05-25 12:01:41 +01:00
Ross Lawley 60c8254f58 Tweaks to item_frequencies
Updated to use a ternary statement and added tests
Refs #124 #122

Thanks to @nickvlku for the code.
2011-05-25 11:10:42 +01:00
Ross Lawley 2ce70448b0 Merge branch 'dev' into pull_124 2011-05-25 09:54:56 +01:00
Ross Lawley 3861103585 Updated connection exception to provide more info on the cause.
Fixes #178
2011-05-25 09:36:25 +01:00
Ross Lawley 3246cf8bdd Merge pull request #177 from sbook/feature/update_lists
Added the ability to update individual items in ListFields.

Example: 
  
   Message.objects(pk=12).update(set__comments__5__body="Testing 123")
2011-05-24 06:13:10 -07:00
Ross Lawley 7ecf84395a Improved DictFields
Allow searching multiple levels deep in DictFields
Allow DictField entries containing strings to use matching operators

Thanks again to @theojulien for the initial code #108
2011-05-24 14:07:58 +01:00
Ross Lawley 32bab13a8a Added MapField, similar to DictField
Similar to DictField except the value of each entry is always of a certain
(declared) field type.

Thanks again to @theojulienne for the code #108
2011-05-24 12:50:48 +01:00
Ross Lawley 088c40f9f2 Added Abstract Base Classes
Thanks to @theojulienne for the code :) #108
2011-05-24 12:30:12 +01:00
Ross Lawley 1126c85903 Added Custom Objects Managers
Managers can now be directly declared in a Document eg::

```python
    class CustomQuerySetManager(QuerySetManager):

        @staticmethod
        def get_queryset(doc_cls, queryset):
            return queryset(is_published=True)

    class Post(Document):
        is_published = BooleanField(default=False)
        published = CustomQuerySetManager()
```

Refactored the name of the `_manager_func` to `get_queryset` to mark it as
part the public API.  If declaring a Manager with a get_queryset method, it
should be a staticmethod, that accepts the document_class and the queryset.

Note - you can still use decorators in fact in the example below,
we effectively do the same thing as the first example and is much less verbose.

```python

    class Post(Document):
        is_published = BooleanField(default=False)

        @queryset_manager
        def published(doc_cls, queryset):
            return queryset(is_published=True)
```

Thanks to @theojulienne for the initial impetus and code sample #108
2011-05-24 11:26:46 +01:00
Ross Lawley 1b72ea9cc1 Fixed detection of unique=True in embedded documents.
Added some more test cases - thanks to @heyman for the initial
test case.

Closes #172
Refs #171
2011-05-20 16:09:03 +01:00
Ross Lawley 04953351f1 Merge branch 'feature/slicing_fields' into dev 2011-05-20 14:18:48 +01:00
Ross Lawley 07e71d9ce9 Regression test for collection names an primary ordering
Closes #91
2011-05-20 14:18:16 +01:00
Ross Lawley 5f53cda3ab Added regression test for #94 2011-05-20 10:55:01 +01:00
Ross Lawley 9260ff9e83 Updated docs and added a NotRegistered exception
For handling GenericReferences that reference documents that haven't
been imported.

Closes #170
2011-05-20 10:22:22 +01:00
Ross Lawley 08d1689268 Updated to handle the converntional api style for slicing a field
Added testcase to demonstrate embedded slicing as well.

Refs #167
2011-05-20 09:47:41 +01:00
Ross Lawley 40b69baa29 Implementing Write Concern
Added write_options dict to save, update, update_one and get_or_create.
Thanks to justquick for the initial ticket and code.

Refs #132
2011-05-19 16:49:00 +01:00
Ross Lawley b3251818cc Added regression test for custom queryset ordering
Closes #126
2011-05-19 13:04:14 +01:00
Ross Lawley da8a057ede Added test showing documents can be pickled
Refs #135
2011-05-19 12:41:38 +01:00
Ross Lawley efba9ef52a Merge remote branch 'srackham/gridfs-read-seek' into gridfs-read-seek 2011-05-19 10:14:51 +01:00
Ross Lawley fb61c9a765 Regression test for mysterious uniqueness constraint when inserting into mongoengine
Closes #143  Thanks to tfausak for the test case.
2011-05-19 09:55:34 +01:00
Ross Lawley 95c2643f63 Added test showing primary=True behaviour.
If you set a field as primary, then unexpected behaviour can occur.
You won't create a duplicate but you will update an existing document.

Closes #138
2011-05-18 20:31:28 +01:00
Ross Lawley fc2aff342b Unique indexes are created before user declared indexes
This ensures that indexes are created with the unique flag, if a user
declares the index, that would automatically be declared by the `unique_indexes`
logic.

Thanks to btubbs for the test case.
Fixes #129
2011-05-18 17:37:41 +01:00
Ross Lawley 371dbf009f Updated QuerySet to allow more granular fields control.
Added a fields method and tests showing the retrival of subranges of
List Fields.

Refs #167
2011-05-18 16:39:19 +01:00
Ross Lawley 5d5a84dbcf Spacing issue cleaned up 2011-05-18 16:24:35 +01:00
Ross Lawley 7526272f84 Added test example of updating an embedded field
Closes #139
2011-05-18 12:27:33 +01:00
Ross Lawley 5cbc76ea81 Pep8 2011-05-18 12:26:51 +01:00
Ross Lawley 7ba40062d3 Fixes ordering with custom db field names
Closes #125
2011-05-18 12:18:33 +01:00
Ross Lawley 1781c4638b Changed how the connection identity key is made
Uses the current thread identity as well as the process idenity to form
the key.

Fixes #151
2011-05-18 11:41:23 +01:00
Ross Lawley 1a049ee49d Added regression test case for mongoengine/issues/155 2011-05-18 11:06:14 +01:00
Ross Lawley 31521ccff5 Added queryset clone support and tests, thanks to hensom
Fixes #130
2011-05-18 10:30:07 +01:00
Ross Lawley e3b4563c2b Merge remote branch 'hensom/master' into dev 2011-05-18 10:06:16 +01:00
Ross Lawley c3f5ed0e0e Merge branch 'master' into dev 2011-05-18 10:06:02 +01:00
Ross Lawley 378b52321b Merge commit '18baa2dd7a4e909169b694cb6ec36214c5a51506' 2011-05-18 09:17:05 +01:00
Ross Lawley 98436f271e Merge branch 'master' into dev 2011-05-18 08:13:58 +01:00
Ross Lawley a76008e440 Merge pull request #164 from glyphobet/master
spherical geospatial operators.
Thanks again to glyphobet
2011-05-16 08:18:22 -07:00
Ross Lawley bd3340c73f Merge pull request #162 from glyphobet/master
Comments in unit tests should say "degrees," not "miles":

MongoDB docs are confusing, only the spherical queries $nearSphere and $centerSphere use radians. The $near and $center queries, which are the ones that are used in these mongoengine tests, use the same units as the coordinates. For distances on the earth, this means they use degrees. (This is also why the 2d indexes can be used for other 2d data, not just points on the earth.)

Here's a mongo shell session demonstrating that $near and $center use degrees, and that $nearSphere and $centerSphere are the ones that use radians:  https://gist.github.com/964126

So, these mongoengine tests are using $near and $center, which use degrees, not miles, kilometers, or radians.

Thanks glyphobet for the clarification and taking time to explain it!
2011-05-10 02:15:17 -07:00
Ross Lawley e9ad04f763 Merge pull request #160 from Ankhbayar/master
Added __hash__, __ne__ with test. 
Thanks Ankhbayar
2011-05-09 02:28:41 -07:00
Ross Lawley f0277736e2 Updated queryset to handle latest version of pymongo
map_reduce now requires an output.
Reverted previous _lookup_field change, until a test case
is produced for the incorrect behaviour.
2011-05-09 10:22:37 +01:00
Ross Lawley 49c978ad9e Merge remote branch 'upstream/master' 2011-05-09 09:01:19 +01:00