2010-03-15 14 views

Antwort

4

Sie haben nicht angegeben, welche API Sie verwenden.

In Python ist es like so:

db.delete(modelId) 

In Java es like sein sollte (ich dies nicht getestet):

PersistenceManager pm = PMF.get().getPersistenceManager(); 

MyModel entity = pm.getObjectById(MyModel.class, modelId); 
pm.deletePersistent(entity); 

pm.close(); 
+2

Die Python-Beispiel ist falsch - ‚Schlüssel‘ ist ein reservierter Feldname, so können nicht als Eigenschaft verwendet werden. Es sollte entweder nach einer anderen Eigenschaft filtern oder MyModel.get verwenden, um nach Schlüssel zu erhalten. Im ersten Fall ist ein Batch-Löschen wie db.delete (MyModel.all(). Fetch (500)) viel effizienter. –

+0

Das Java-Beispiel zeigt, wie man ein einzelnes Objekt mit JDO von einer Entität (oder Art in Google Talk) entfernt, nicht wie man eine Entity entfernt, sondern ein spezifisches Objekt nach ID (modelId) und löscht es dann. Um eine Art zu löschen, müssen Sie alle Daten löschen. – stivlo

3

In Python, wenn Sie die Taste, um es wirklich einfach wissen:

db.delete(key) 
+2

Wie bekomme ich den Schlüssel? –

0

Ich gehe davon aus, dass Sie einen Endpunkt haben:

Somethingendpoint endpoint = CloudEndpointUtils.updateBuilder(endpointBuilder).build(); 

Und dann:

endpoint.remove<ModelName>(long ID); 
0

Zusätzlich können Sie auch so etwas wie die folgenden (In Python Pseudo-Code) versuchen:

class MyClass(ndb.Model): 
    myString = ndb.StringProperty(indexed=false) 

def deleteAllEntities(): 
    entities = MyClass.query() 
    for entity in entities: 
     entity.key.delete() 

Zwar gibt es bessere Möglichkeiten Massenlöschung zu tun , aber das ist eine Möglichkeit, die Sie verwenden können, wenn Sie Probleme haben.

Mehr Infos hier: https://cloud.google.com/appengine/docs/python/datastore/entities#Python_Deleting_an_entity

Verwandte Themen