2010-03-15 16 views

risposta

4

Non hai specificato quale API stai utilizzando.

In Python è like so:

db.delete(modelId) 

In Java dovrebbe essere like (non ho ancora testato questo):

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

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

pm.close(); 
+2

Il Python esempio non è corretta - 'chiave' è un nome di campo riservato, in modo da non può essere usato come una proprietà. Dovrebbe o filtrare su un'altra proprietà, o usare MyModel.get per ottenere la chiave. Nel primo caso, un batch delete come db.delete (MyModel.all(). Fetch (500)) è _much_ più efficiente. –

+0

L'esempio Java mostra come rimuovere un singolo oggetto da un'entità (o Kind in google talk) usando JDO, non come rimuovere un'entità, infatti ottiene un oggetto specifico per id (modelId) e quindi lo elimina. Ad ogni modo per cancellare un tipo, devi cancellare tutti i dati in esso contenuti. – stivlo

3

in Python se si conosce la chiave è molto semplice:

db.delete(key) 
+2

come ottenere la chiave? –

0

Suppongo che tu abbia un endpoint:

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

E poi:

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

Inoltre, si può anche provare qualcosa di simile alla seguente (In Python pseudo-codice):

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

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

Certo ci sono modi migliori per farlo eliminazione di massa , ma questo è un modo che puoi usare se hai problemi.

Maggiori informazioni qui: https://cloud.google.com/appengine/docs/python/datastore/entities#Python_Deleting_an_entity

Problemi correlati