Comments (4)
+1 we solved this problem by adding cache in queryset.
from mongoengine.
There has been a discussion about this at http://groups.google.co.uk/group/mongoengine-dev/browse_thread/thread/b75fdfaed1440997 - a concern is that documents can get pretty large (especially when you got lots of embedded document), so caching by default could be a memory hog. It seems like the most popular option would be to cache by default, but make it easy to disable the caching behaviour, like Django does.
from mongoengine.
You'r right about memory hog and since its mongo untill and unless there are lots of DBRef query read should be pretty similar to memcached read. Anyways there is always a work around by calling list()
on queryset but then we lost Queryset method chainging on it and its not a recommended way.
@eykd try:
docs = list(Foo.objects())
from mongoengine.
The memory concerns make perfect sense, but since you're trying to mimic Django's QuerySet behavior and interface, the current behavior breaks the Principle of Least Surprise. This crucial difference should at least be clearly documented. It's not a completely foreign concept at least--mongoengine's QuerySets are to Django's as generator comprehensions are to list comprehensions. As long as the behavior is documented, then it's no more surprising than a generator "evaporating" after the first evaluation.
Also, something should be done about that exception. If it's going to act like a generator, it should merely evaporate, not explode. :)
from mongoengine.
Related Issues (20)
- EmailField fails on validation for empty strings and does not provide for required = False HOT 1
- from .<Module> import * incompatible with 2.5 HOT 1
- Mongoengine runs validate on non changed fields before saving. HOT 3
- a class extend from Document ,EmbeddedDocument save failed.
- ? Is there a way to tell if refernce field has been de-referenced? HOT 1
- connect( ) falls back to localhost (bad) HOT 1
- Support the new full text indexes (creation & find by text index)
- TTL indexes does not work HOT 1
- unique=True Not working. HOT 1
- no signal on document update HOT 1
- Queryset update doesn't go through field validation
- GenericReferenceField serialization bug
- BSONSerializer not defined when using with Django. HOT 2
- AttributeError: 'module' object has no attribute 'DatabaseWrapper' HOT 1
- Documentation is wrong about QuerySet counting
- No way to rename a column
- bulk insert does not invoke pre_save or save() methods of the Document
- kwargs for username and password are being forgotten in mongoengine.connect
- mongodb URI empty fields overwrite keyword arguments
- Invalid embedded document instance provided to an EmbeddedDocumentField
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mongoengine.