mysql
  • database
  • google-app-engine
  • 2012-04-14 96 views 1 likes 
    1

    我有一個名爲RelatedUsers與模型有三個屬性:如何做一個OR查詢谷歌應用程序引擎

    firstUserId 
    secondUserId 
    relationshipStatus 
    

    我從MySQL未來在那裏我會做到這一點:

    mysql_query("SELECT * FROM relatedUsers WHERE (firstUserId='$originatorId' 
    AND secondUserId='$recipientId') OR (firstUserId='$recipientId' 
    AND secondUserId='$originatorId')"); 
    

    Google App Engine如何做到這一點?我找不到任何類似的案例在線..

    +2

    你不知道。數據存儲不支持它。 – geoffspear 2012-04-14 21:43:32

    +0

    任何OR的一般都不受支持? – Snowman 2012-04-14 21:53:54

    +0

    無論如何,你基本上都會要求兩個不同的查詢。看起來您的查詢設計爲每個返回一條記錄,但在這種情況下,使用兩個用戶的組合用戶ID作爲您的「關聯用戶」實體的關鍵名稱會更有意義。然後,您可以使用批處理獲取它們。 – 2012-04-15 01:48:13

    回答

    2

    通過運行幾個關鍵的查詢,然後獲取密鑰。

    from google.appengine.ext import ndb 
    
    class User(ndb.Model): 
        email = db.StringProperty() 
    
    
    options = ndb.QueryOptions(keys_only=True) 
    condition_1 = ndb.Query(User, options=options).filter(User.email == "[email protected]") 
    condition_1 = ndb.Query(User, options=options).filter(User.email == "[email protected]") 
    
    key_list = list(set(list(condition_1) + list(condition_2))) 
    
    mom_and_dad = ndb.get_multi(key_list) 
    

    如果你必須訂購它們,你將不得不在內存中這樣做。

    /從內存中完成:)

    相關問題