2010-03-15 15 views

Odpowiedz

4

Nie określono interfejsu API, którego używasz.

W Pythonie to like so:

db.delete(modelId) 

W Javie powinien być like (nie testowałem tego):

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

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

pm.close(); 
+2

Python przykładem jest błędna - „klucz” jest zarezerwowana nazwa pola, więc nie może być stosowany jako własność. Powinno to być filtrowanie na innej właściwości lub użycie MyModel.get do uzyskania klucza. W pierwszym przypadku usuwanie wsadowe, takie jak db.delete (MyModel.all(). Fetch (500)) jest _much_ bardziej wydajne. –

+0

Przykład Java pokazuje, jak usunąć pojedynczy obiekt z encji (lub rodzaju w Google Talk) za pomocą JDO, a nie jak usunąć encję, w rzeczywistości otrzymuje określony obiekt według identyfikatora (modelId), a następnie usuwa go. W każdym razie, aby usunąć Kind, musisz usunąć wszystkie dane w nim. – stivlo

3

W python jeśli wiesz, że klucz jest naprawdę prosta:

db.delete(key) 
+2

Jak zdobyć klucz? –

0

Zakładam, że masz punkt końcowy:

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

A potem:

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

Dodatkowo można także spróbować coś jak następuje (w Pythonie pseudo-kod):

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

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

Wprawdzie istnieją lepsze sposoby wykonywania usunięcie luzem , ale jest to sposób, w jaki możesz użyć, jeśli masz problemy.

Więcej informacji tutaj: https://cloud.google.com/appengine/docs/python/datastore/entities#Python_Deleting_an_entity

Powiązane problemy