2010-03-15 26 views

Respuesta

4

No ha especificado qué API está utilizando.

En Python es like so:

db.delete(modelId) 

En Java debe ser like (no he probado esto):

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

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

pm.close(); 
+2

El ejemplo de Python es incorrecta - 'clave' es un nombre de campo reservado, por lo que no se puede usar como una propiedad. Debería filtrarse en otra propiedad o usar MyModel.get para obtener la clave. En el primer caso, una eliminación por lotes como db.delete (MyModel.all(). Fetch (500)) es _much_ más eficiente. –

+0

El ejemplo de Java muestra cómo eliminar un solo objeto de una entidad (o tipo en google talk) usando JDO, no cómo eliminar una entidad, de hecho obtiene un objeto específico por id (modelId) y luego lo elimina. De todos modos, para eliminar un Tipo, debes eliminar todos los datos en él. – stivlo

3

en Python si se conoce la clave que sea muy simple:

db.delete(key) 
+2

cómo obtener la llave? –

0

Supongo que tiene un punto final:

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

Y luego:

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

Además, también se puede intentar algo así como lo siguiente (En Python pseudo-código):

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

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

Es cierto que hay mejores maneras de hacer eliminación masiva , pero esta es una forma que puede usar si tiene problemas.

Más información aquí: https://cloud.google.com/appengine/docs/python/datastore/entities#Python_Deleting_an_entity

Cuestiones relacionadas