2010-03-15 13 views

उत्तर

4

आपने निर्दिष्ट नहीं किया है कि आप कौन सी एपीआई का उपयोग कर रहे हैं।

अजगर में यह like so है:

db.delete(modelId) 

जावा में यह होना चाहिए like (मैं इस परीक्षण नहीं किया):

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

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

pm.close(); 
+2

अजगर उदाहरण गलत है - 'कुंजी' एक आरक्षित क्षेत्र नाम है, इसलिए एक संपत्ति के रूप में इस्तेमाल नहीं किया जा सकता। इसे या तो किसी अन्य प्रॉपर्टी पर फ़िल्टर करना चाहिए, या कुंजी से प्राप्त करने के लिए MyModel.get का उपयोग करना चाहिए। पूर्व मामले में, एक बैच हटाएं जैसे कि db.delete (MyModel.all()। Fetch (500)) _much_ अधिक कुशल है। –

+0

जावा उदाहरण दिखाता है कि जेडीओ का उपयोग करके एक इकाई (या Google टॉक में Kind) से एक ऑब्जेक्ट को कैसे हटाया जाए, न कि एक इकाई को कैसे हटाया जाए, वास्तव में यह आईडी (modelId) द्वारा एक विशिष्ट ऑब्जेक्ट प्राप्त करता है और फिर इसे हटा देता है। वैसे भी एक तरह से हटाने के लिए, आपको इसमें सभी डेटा हटाना होगा। – stivlo

3

अजगर में यदि आप कुंजी यह वास्तव में सरल पता:

db.delete(key) 
+2

कुंजी कैसे प्राप्त करें? –

0

मुझे लगता है कि आपके पास एंडपॉइंट है:

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

और फिर:

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

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

वैसे वहाँ बड़ी संख्या में मिटाने करना बेहतर तरीके हैं:

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

साथ ही, आपको भी निम्न (अजगर छद्म कोड में) की तरह कुछ कोशिश कर सकते हैं , लेकिन अगर आपको परेशानी हो रही है तो यह एक ऐसा तरीका है जिसका आप उपयोग कर सकते हैं।

अधिक यहाँ जानकारी: https://cloud.google.com/appengine/docs/python/datastore/entities#Python_Deleting_an_entity

संबंधित मुद्दे