Map field¶
Map.
class Doc(Document):
__collection__ = 'docs'
map = fields.MapField(fields.IntegerField)
doc = Doc()
doc.map['a'] = 1
doc.map['b'] = 2
assert doc.map == {'a': 1, 'b': 2}
db.insert(doc)
doc = db.get_queryset(Doc).find_one(doc.id) # reload
doc.map['c'] = 3 # do not save
assert doc.map == {'a': 1, 'b': 2, 'c': 3}
doc = db.get_queryset(Doc).find_one(doc.id) # reload
assert doc.map == {'a': 1, 'b': 2}
del doc.map['b'] # do not save too
assert doc.map == {'a': 1}
doc = db.get_queryset(Doc).find_one(doc.id) # reload
assert doc.map == {'a': 1, 'b': 2}
doc.map.set('d', 3) # $set query
assert doc.map == {'a': 1, 'b': 2, 'c': 3}
doc = db.get_queryset(Doc).find_one(doc.id) # reload
assert doc.map == {'a': 1, 'b': 2, 'c': 3}
doc.map.unset('d', 3) # $unset query
assert doc.map == {'a': 1, 'b': 2}
doc = db.get_queryset(Doc).find_one(doc.id) # reload
assert doc.map == {'a': 1, 'b': 2}
-
class
yadm.fields.map.
Map
(field, parent, value)¶ Map.
-
set
(key, value, reload=True)¶ Set key directly in database.
Parameters: - key – key
- value – value for $set
See $set in MongoDB’s set.
-
unset
(key, reload=True)¶ Unset key directly in database.
Parameters: key – key See $unset in MongoDB’s unset.
-
-
class
yadm.fields.map.
MapCustomKeys
(field, parent, value)¶ -
set
(key, value, reload=True)¶ Set key directly in database.
Parameters: - key – key
- value – value for $set
See $set in MongoDB’s set.
-
unset
(key, value, reload=True)¶ Unset key directly in database.
Parameters: key – key See $unset in MongoDB’s unset.
-
-
class
yadm.fields.map.
MapCustomKeysField
(item_field, key_factory, *, key_to_str=<class 'str'>, auto_create=True, **kwargs)¶ Field for maps with custom key type.
Parameters: - item_field (field) –
- key_factory (func) – function, who return thue key from raw string key
- key_to_str (func) –
- auto_create (bool) –
-
container
¶ alias of
MapCustomKeys
-
prepare_value
(document, value)¶ The method is called when value is assigned for the attribute.
Parameters: - document (BaseDocument) – document
- value – raw value
Returns: prepared value
It must be accept value argument and return processed (e.g. casted) analog. Also it is called once for the default value.
-
to_mongo
(document, value)¶ Convert python value to mongo value.
Parameters: - document (BaseDocument) – document
- value – python value
Returns: mongo value
-
class
yadm.fields.map.
MapField
(item_field=None, *, auto_create=True, **kwargs)¶ Field for maps.
-
from_mongo
(document, value)¶ Convert mongo value to python value.
Parameters: - document (BaseDocument) – document
- value – mongo value
Returns: python value
-
prepare_value
(document, value)¶ The method is called when value is assigned for the attribute.
Parameters: - document (BaseDocument) – document
- value – raw value
Returns: prepared value
It must be accept value argument and return processed (e.g. casted) analog. Also it is called once for the default value.
-
to_mongo
(document, value)¶ Convert python value to mongo value.
Parameters: - document (BaseDocument) – document
- value – python value
Returns: mongo value
-