Queryset¶
-
class
yadm.queryset.
QuerySet
(db, document_class, *, cache=None, criteria=None, projection=None, sort=None, slice=None, read_preference=None)¶ Query builder.
Parameters: - cache –
- criteria (dict) –
- projection (dict) –
- sort (list) –
- slice (slice) –
- read_preference (int) –
-
bulk
()¶ Return map {id: object}.
Returns: dict
-
cache
¶ Queryset cache object.
-
copy
(*, cache=None, criteria=None, projection=None, sort=None, slice=None, read_preference=None)¶ Copy queryset with new parameters.
Only keywords arguments is alowed. Parameters simply replaced with given arguments.
Parameters: - cache –
- criteria (dict) –
- projection (dict) –
- sort (list) –
- slice (slice) –
- read_preference (int) –
Returns: new
yadm.queryset.QuerySet
object
-
count
()¶ Count documents in queryset.
Returns: int
-
distinct
(field)¶ Distinct query.
Parameters: field (str) – field for distinct Returns: list with result data
-
fields
(*fields)¶ Get only setted fields.
Update projection with fields.
Parameters: fields (str) – Returns: new yadm.queryset.QuerySet
qs('field', 'field2')
-
fields_all
()¶ Clear projection.
-
find
(criteria=None, projection=None)¶ Return queryset copy with new criteria and projection.
Parameters: - criteria (dict) – update queryset’s criteria
- projection (dict) – update queryset’s projection
Returns: qs({'field': {'$gt': 3}}, {'field': True})
-
find_and_modify
(update=None, *, upsert=False, full_response=False, new=False, **kwargs)¶ Execute $findAndModify query.
Parameters: - update (dict) – see second argument to update()
- upsert (bool) – insert if object doesn’t exist (default False)
- full_response (bool) – return the entire response object from the server (default False)
- new – return updated rather than original object (default False)
- kwargs – any other options the findAndModify command supports can be passed here
Returns: yadm.documents.Document
or None
-
find_one
(criteria=None, projection=None, *, exc=None)¶ Find and return only one document.
Parameters: - criteria (dict) – update queryset’s criteria
- projection (dict) – update queryset’s projection
- exc (Exception) – raise given exception if not found
Returns: yadm.documents.Document
or Noneqs({'field': {'$gt': 3}}, {'field': True})
-
join
(*field_names)¶ Create yadm.Join object, join field_names and return it.
Parameters: fiels_names (str) – fields for join Returns: new yadm.join.Join
- Next algorithm for join:
- Get all documents from queryset;
- Aggegate all ids from requested fields;
- Make $in queries for get joined documents;
- Bind joined documents to objects from first queryset;
Join object is instance of abc.Sequence.
-
read_preference
(read_preference)¶ Setup readPreference.
Return new QuerySet instance.
-
remove
(*, multi=True)¶ Remove documents in queryset.
Parameters: multi (bool) – if False, remove only first finded document (default True)
-
sort
(*sort)¶ Return queryset with sorting.
Parameters: sort (tuples) – tuples with two items: (‘field_name’, sort_order_as_int). qs.sort(('field_1', 1), ('field_2', -1))
-
update
(update, *, multi=True, upsert=False)¶ Update documents in queryset.
Parameters: - update (dict) – update query
- multi (bool) – update all matched documents (default True)
- upsert (bool) – insert if not found (default False)
Returns: update result
-
with_id
(_id)¶ Find document with id.
This method is deprecated. Use find_one.
Parameters: _id – id of searching document Returns: yadm.documents.Document
or None