-
Notifications
You must be signed in to change notification settings - Fork 3
Database Examples
James Barrow edited this page Jul 5, 2016
·
2 revisions
Get the database you wish to use from the container. In these examples we are using the public database.
public_cloud_database = container.public_cloud_database
record = Record()
record.record_type = 'Animal'
fields = {
'species': 'Dog',
'name': 'Scruffy',
'age': 3
}
record.fields = CKValue.fields(fields)
result = public_cloud_database.save_records([record])
if result.is_failure is True:
ck.logger.error(
"Failed to save record: %s" % result.error.server_error_code
)
elif result.is_success is True:
ck.logger.info(
"Saved record successfully!"
)
record = result.value[0]
> Saved record successfully!
result = public_cloud_database.fetch_records([record])
if result.is_failure is True:
ck.logger.error(
"Failed to fetch records: %s" % result.error.server_error_code
)
elif result.is_success is True:
ck.logger.info(
"Fetched records successfully!"
)
record = result.value[0]
> Fetched records successfully!
record.fields['age'] = CKValue(4).json()
result = public_cloud_database.save_records([record])
if result.is_failure is True:
ck.logger.error(
"Failed to modify records: %s" % result.error.server_error_code
)
elif result.is_success is True:
record = result.value[0]
ck.logger.info(
"Modified records successfully! Age: %s" % (
CKValue(json=record.fields['age']).value
)
)
> Modified records successfully! Age: 4
query_filter = Filter()
query_filter.comparator = CloudKit.GREATER_THAN
query_filter.field_name = 'age'
query_filter.field_value = CKValue(3).json()
query_sort_descriptor = SortDescriptor()
query_sort_descriptor.field_name = 'name'
query_sort_descriptor.ascending = False
query = Query()
query.record_type = 'Animal'
query.filter_by = [query_filter]
query.sort_by = [query_sort_descriptor]
result = public_cloud_database.perform_query(query)
if result.is_failure is True:
ck.logger.error(
"Failed to query records: %s" % result.error.server_error_code
)
elif result.is_success is True:
ck.logger.info(
"Queried records successfully! %s" % result.value[0]
)
> Queried records successfully! [<cloudkitpy.datatypes.Record instance>]
result = public_cloud_database.delete_records([record])
if result.is_failure is True:
ck.logger.error(
"Failed to delete records: %s" % result.error.server_error_code
)
elif result.is_success is True:
ck.logger.info(
"Deleted records successfully!"
)
> Deleted records successfully!