List fields¶
List of objects.
class Doc(Document):
__collection__ = 'docs'
integers = fields.ListField(fields.IntegerField)
doc = Doc()
doc.integers.append(1)
doc.integers.append(2)
assert doc.integers == [1, 2]
db.insert(doc)
doc = db.get_queryset(Doc).find_one(doc.id) # reload
doc.integers.append(3) # do not save
assert doc.integers == [1, 2, 3]
doc = db.get_queryset(Doc).find_one(doc.id) # reload
assert doc.integers == [1, 2]
doc.integers.remove(2) # do not save too
assert doc.integers == [1]
doc = db.get_queryset(Doc).find_one(doc.id) # reload
assert doc.integers == [1, 2]
doc.integers.push(3) # $push query
assert doc.integers == [1, 2, 3]
doc = db.get_queryset(Doc).find_one(doc.id) # reload
assert doc.integers == [1, 2, 3]
doc.integers.pull(2) # $pull query
assert doc.integers == [1, 3]
doc = db.get_queryset(Doc).find_one(doc.id) # reload
assert doc.integers == [1, 3]
-
class
yadm.fields.list.
List
(field, parent, value)¶ Container for list.
-
append
(item)¶ Append item to list.
Parameters: item – item for append This method does not save object!
-
insert
(index, item)¶ Append item to list.
Parameters: - index (int) –
- item – item for insert
This method does not save object!
-
pull
(query, reload=True)¶ Pull item from database.
Parameters: - query – query for $pull on this field
- reload (bool) – automatically reload all values from database
See $pull in MongoDB’s update.
-
push
(item, reload=True)¶ Push item directly to database.
Parameters: - item – item for $push
- reload (bool) – automatically reload all values from database
See $push in MongoDB’s update.
-
remove
(item)¶ Remove item from list.
Parameters: item – item for remove This method does not save object!
-
replace
(query, item, reload=True)¶ Replace list elements.
Parameters: - query – query for update. Keys of this query is relative.
- item – embedded document or dict
- reload (bool) – automatically reload all values from database
-
update
(query, values, reload=True)¶ Update fields in embedded documents.
Parameters: - query – query for update. Keys of this query is relative.
- values – dict of new values
- reload (bool) – automatically reload all values from database
-