CRUD-Operationen (Create, Remove, Update, Delete) ausführen
Sie können den Inhalt eines Datastore modifizieren.
Informationen zu diesem Vorgang
Weitere Details zu CRUD-Operationen (Create, Retrieve, Update, Delete) finden Sie in der Dokumentation unter CDTDatastore CRUD.
Informationen zu CRUD-Operationen (Create, Retrieve, Update, Delete) für einen fernen Store finden Sie in der Beschreibung der Cloudant-Dokumente.
Daten erstellen
Vorgehensweise
Daten speichern:
NACHHER (mit Cloudant Sync):
VORHER (mit IMFData/CloudantToolkit):
// Vorhandenen Store verwenden
CDTStore *store = existingStore;
// Zu speicherndes Fahrzeug erstellen
Automobile *automobile = [[Automobile alloc] initWithMake:@"Toyota" model:@"Corolla" year: 2006];
[store save:automobile completionHandler:^(id savedObject, NSError *error) {
if (error) {
// Speichern fehlgeschlagen, Handler hat einen Fehler empfangen
} else {
// Ergebnis verwenden
Automobile *savedAutomobile = savedObject;
NSLog(@"saved revision: %@", savedAutomobile);
}
}];
// Vorhandenen Store verwenden
let store:CDTStore = existingStore
// Zu speicherndes Objekt erstellen
let automobile = Automobile(make: "Toyota", model: "Corolla", year: 2006)
store.save(automobile, completionHandler: { (savedObject:AnyObject!, error:NSError!) -> Void in
if nil != error {
// Speichern fehlgeschlagen, Handler hat einen Fehler empfangen
} else {
// Ergebnis verwenden
print("Saved revision: \(savedObject)")
}
})

// Vorhandenen Store verwenden
Store store = existingStore;
// Zu speicherndes Objekt erstellen
Automobile automobile = new Automobile("Toyota", "Corolla", 2006);
// Fahrzeug im Store speichern
Task<Object> saveTask = store.save(automobile);
saveTask.continueWith(new Continuation<Object, Void>() {
@Override
public Void then(Task<Object> task) throws Exception {
if (task.isFaulted()) {
// Speichern nicht erfolgreich. Fehler ist in task.getError() enthalten.
} else {
// Ergebnis verwenden
Automobile savedAutomobile = (Automobile) task.getResult();
}
return null;
}
});
NACHHER (mit Cloudant Sync): // Vorhandenen Store verwenden
CDTDatastore *datastore = existingDatastore;
// Dokumenthauptteil erstellen
CDTMutableDocumentRevision * revision = [CDTMutableDocumentRevision revision];
revision.body = @{@"@datatype" : @"Automobile", @"make" :@"Toyota", @"model": @"Corolla", @"year" : @2006};
NSError* error = nil;
CDTDocumentRevision *createdRevision = [datastore createDocumentFromRevision:revision error:&error];
if (error) {
// Speichern fehlgeschlagen, Handler hat einen Fehler empfangen
} else {
// Ergebnis verwenden
NSLog(@"Revision: %@", createdRevision);
}
// Vorhandenen Store verwenden
let datastore:CDTDatastore = existingDatastore
// Dokumenthauptteil erstellen
let revision = CDTMutableDocumentRevision()
revision.setBody(["make":"Toyota","model":"Corolla","year":2006])
var createdRevision:CDTDocumentRevision?
do{
createdRevision = try datastore.createDocumentFromRevision(revision)
NSLog("Revision: \(createdRevision)");
}catch let error as NSError{
// Fehler behandeln
}

// Vorhandenen Store verwenden
Datastore datastore = existingStore;
// Dokumenthauptteil erstellen
Map<String, Object> body = new HashMap<String, Object>();
body.put("@datatype", "Automobile");
body.put("make", "Toyota");
body.put("model", "Corolla");
body.put("year", 2006);
// Überarbeitung erstellen und Hauptteil festlegen
MutableDocumentRevision revision = new MutableDocumentRevision();
revision.body = DocumentBodyFactory.create(body);
// Überarbeitung im Store speichern
DocumentRevision savedRevision = datastore.createDocumentFromRevision(revision);
Daten lesen
Sie können Daten abrufen.
Vorgehensweise
Daten lesen:
VORHER (mit IMFData/CloudantToolkit):
NACHHER (mit Cloudant Sync):
VORHER (mit IMFData/CloudantToolkit):CDTStore *store = existingStore;
NSString *automobileId = existingAutomobileId;
// Fahrzeug aus dem Store abrufen
[store fetchById:automobileId completionHandler:^(id object, NSError *error) {
if (error) {
// Abrufen fehlgeschlagen, Handler hat einen Fehler empfangen
} else {
// Ergebnis verwenden
Automobile *savedAutomobile = object;
NSLog(@"fetched automobile: %@", savedAutomobile);
}
}];
// Vorhandenen Store und vorhandenes Fahrzeug verwenden
let store:CDTStore = existingStore
let automobileId:String = existingAutomobileId
// Fahrzeug aus dem Store abrufen
store.fetchById(automobileId, completionHandler: { (object:AnyObject!, error:NSError!) -> Void in
if nil != error {
// Abrufen fehlgeschlagen, Handler hat einen Fehler empfangen
} else {
// Ergebnis verwenden
let savedAutomobile:Automobile = object as! Automobile
print("Fetched automobile: \(savedAutomobile)")
}
})

// Vorhandenen Store und vorhandene documentId verwenden
Store store = existingStore;
String automobileId = existingAutomobileId;
// Fahrzeug aus dem Store abrufen
Task<Object> fetchTask = store.fetchById(automobileId);
fetchTask.continueWith(new Continuation<Object, Void>() {
@Override
public Void then(Task<Object> task) throws Exception {
if (task.isFaulted()) {
// Abruf nicht erfolgreich. Fehler ist in task.getError() enthalten.
} else {
// Ergebnis verwenden
Automobile fetchedAutomobile = (Automobile) task.getResult();
}
return null;
}
});
NACHHER (mit Cloudant Sync): // Vorhandenen Store und vorhandene documentId verwenden
CDTDatastore *datastore = existingDatastore;
NSString *documentId = existingDocumentId;
// Überarbeitung CDTDocumentRevision aus dem Store abrufen
NSError* error = nil;
CDTDocumentRevision *fetchedRevision = [datastore getDocumentWithId:documentId error:&error];
if (error) {
// Abrufen fehlgeschlagen, Handler hat einen Fehler empfangen
} else {
// Ergebnis verwenden
NSLog(@"Revision: %@", fetchedRevision);
}
// Vorhandenen Store und vorhandene documentId verwenden
let datastore:CDTDatastore = existingDatastore
let documentId:String = existingDocumentId
var fetchedRevision:CDTDocumentRevision?
do{
fetchedRevision = try datastore.getDocumentWithId(documentId)
NSLog("Revision: \(fetchedRevision)");
}catch let error as NSError{
// Fehler behandeln
}

// Vorhandenen Store und vorhandene documentId verwenden
Datastore datastore = existingStore;
String documentId = existingDocumentId;
// Überarbeitung aus dem Store abrufen
DocumentRevision fetchedRevision = datastore.getDocument(documentId);
Daten aktualisieren
Wenn Sie ein Objekt aktualisieren möchten, müssen Sie "save" für ein vorhandenes Objekt ausführen. Da das Element bereits vorhanden ist, wird es aktualisiert.
Vorgehensweise
Aktualisieren Sie Objekte.
VORHER (mit IMFData/CloudantToolkit):
NACHHER (mit Cloudant Sync):
VORHER (mit IMFData/CloudantToolkit):// Vorhandenen Store und vorhandenes Fahrzeug verwenden
CDTStore *store = existingStore;
Automobile *automobile = existingAutomobile;
// Einige Werte des Fahrzeugs aktualisieren
automobile.year = 2015;
// Fahrzeug im Store speichern
[store save:automobile completionHandler:^(id savedObject, NSError *error) {
if (error) {
// Speichern fehlgeschlagen, Handler hat einen Fehler empfangen
} else {
// Ergebnis verwenden
Automobile *savedAutomobile = savedObject;
NSLog(@"saved automobile: %@", savedAutomobile);
}
}];
// Vorhandenen Store und vorhandenes Fahrzeug verwenden
let store:CDTStore = existingStore
let automobile:Automobile = existingAutomobile
// Einige Werte des Fahrzeugs aktualisieren
automobile.year = 2015
// Fahrzeug im Store speichern
store.save(automobile, completionHandler: { (savedObject:AnyObject!, error:NSError!) -> Void in
if nil != error {
// Aktualisierung fehlgeschlagen, Handler hat einen Fehler empfangen
} else {
// Ergebnis verwenden
let savedAutomobile:Automobile = savedObject as! Automobile
print("Updated automobile: \(savedAutomobile)")
}
})

// Vorhandenen Store und vorhandenes Fahrzeug verwenden
Store store = existingStore;
Automobile automobile = existingAutomobile;
// Einige Werte des Fahrzeugs aktualisieren
automobile.setYear(2015);
// Fahrzeug im Store speichern
Task<Object> saveTask = store.save(automobile);
saveTask.continueWith(new Continuation<Object, Void>() {
@Override
public Void then(Task<Object> task) throws Exception {
if (task.isFaulted()) {
// Speichern nicht erfolgreich. Fehler ist in task.getError() enthalten.
} else {
// Ergebnis verwenden
Automobile savedAutomobile = (Automobile) task.getResult();
}
return null;
}
});
NACHHER (mit Cloudant Sync): // Vorhandenen Store und vorhandenes Dokument verwenden
CDTDatastore *datastore = existingDatastore;
CDTMutableDocumentRevision *documentRevision = [existingDocumentRevision mutableCopy];
// Einige Werte in der Überarbeitung aktualisieren
[documentRevision.body setValue:@2015 forKey:@"year"];
NSError* error = nil;
CDTDocumentRevision *updatedRevision = [datastore updateDocumentFromRevision:documentRevision error:&error];
if (error) {
// Speichern fehlgeschlagen, Handler hat einen Fehler empfangen
} else {
// Ergebnis verwenden
NSLog(@"Revision: %@", updatedRevision);
}
// Vorhandenen Store und vorhandenes Dokument verwenden
let datastore:CDTDatastore = existingDatastore
let documentRevision:CDTMutableDocumentRevision = existingDocumentRevision.mutableCopy()
// Einige Werte in der Überarbeitung aktualisieren
documentRevision.body()["year"] = 2015
var updatedRevision:CDTDocumentRevision?
do{
updatedRevision = try datastore.updateDocumentFromRevision(documentRevision)
NSLog("Revision: \(updatedRevision)");
}catch let error as NSError{
// Fehler behandeln
}

// Vorhandenen Store und vorhandene documentId verwenden
// Vorhandenen Store verwenden
Datastore datastore = existingStore;
// Überarbeitung MutableDocumentRevision aus vorhandener Überarbeitung erstellen
MutableDocumentRevision revision = existingRevision.mutableCopy();
// Einige Werte in der Überarbeitung aktualisieren
Map<String, Object> body = revision.getBody().asMap();
body.put("year", 2015);
revision.body = DocumentBodyFactory.create(body);
// Überarbeitung im Store speichern
DocumentRevision savedRevision = datastore.updateDocumentFromRevision(revision);
Daten löschen
Wenn Sie ein Objekt löschen möchten, übergeben Sie es an den Store.
Vorgehensweise
Löschen Sie Objekte.
VORHER (mit IMFData/CloudantToolkit):
NACHHER (mit Cloudant Sync):
VORHER (mit IMFData/CloudantToolkit):// Vorhandenen Store und vorhandenes Fahrzeug verwenden
CDTStore *store = existingStore;
Automobile *automobile = existingAutomobile;
// Fahrzeugobjekt aus dem Store löschen
[store delete:automobile completionHandler:^(NSString *deletedObjectId, NSString *deletedRevisionId, NSError *error) {
if (error) {
// Löschen fehlgeschlagen, Handler hat einen Fehler empfangen
} else {
// Ergebnis verwenden
NSLog(@"deleted Automobile doc-%@-rev-%@", deletedObjectId, deletedRevisionId);
}
}];
// Vorhandenen Store und vorhandenes Fahrzeug verwenden
let store:CDTStore = existingStore
let automobile:Automobile = existingAutomobile
// Fahrzeugobjekt löschen
store.delete(automobile, completionHandler: { (deletedObjectId:String!, deletedRevisionId:String!, error:NSError!) -> Void in
if nil != error {
// Löschen fehlgeschlagen, Handler hat einen Fehler empfangen
} else {
// Ergebnis verwenden
print("deleted document doc-\(deletedObjectId)-rev-\(deletedRevisionId)")
}
})

// Vorhandenen Store und vorhandenes Fahrzeug verwenden
Store store = existingStore;
Automobile automobile = existingAutomobile;
// Fahrzeug aus dem Store löschen
Task<String> deleteTask = store.delete(automobile);
deleteTask.continueWith(new Continuation<String, Void>() {
@Override
public Void then(Task<String> task) throws Exception {
if (task.isFaulted()) {
// Löschen nicht erfolgreich. Fehler ist in task.getError() enthalten.
} else {
// Ergebnis verwenden
String deletedAutomobileId = task.getResult();
}
return null;
}
});
NACHHER (mit Cloudant Sync): // Vorhandenen Store und vorhandene Überarbeitung verwenden
CDTDatastore *datastore = existingDatastore;
CDTDocumentRevision *documentRevision = existingDocumentRevision;
// Überarbeitung CDTDocumentRevision aus dem Store löschen
NSError* error = nil;
CDTDocumentRevision *deletedRevision = [datastore deleteDocumentFromRevision:documentRevision error:&error];
if (error) {
// Löschen fehlgeschlagen, Handler hat einen Fehler empfangen
} else {
// Ergebnis verwenden
NSLog(@"deleted document: %@", deletedRevision);
}
// Vorhandenen Store und vorhandene Überarbeitung verwenden
let datastore:CDTDatastore = existingDatastore
let documentRevision:CDTDocumentRevision = existingDocumentRevision
var deletedRevision:CDTDocumentRevision?
do{
deletedRevision = try datastore.deleteDocumentFromRevision(documentRevision)
NSLog("Revision: \(deletedRevision)");
}catch let error as NSError{
// Fehler behandeln
}

// Vorhandenen Store und vorhandene Überarbeitung verwenden
Datastore datastore = existingStore;
BasicDocumentRevision documentRevision = (BasicDocumentRevision) existingDocumentRevision;
// Überarbeitung aus dem Store löschen
DocumentRevision deletedRevision = datastore.deleteDocumentFromRevision(documentRevision);