根據(jù)App Engine 文檔中的祖先查詢,我可以執(zhí)行以下操作:type Team struct { Name string}type Player struct { Name string}// Save data first just for the test caseteamA := datastore.NewIncompleteKey(c, "Team", nil)teamA, _ = datastore.Put(c, teamA, Team{"Team A"})playerA := datastore.NewIncompleteKey(c, "Player", teamA)playerA, _ = datastore.Put(c, playerA, Player{"Player A"})playerB := datastore.NewIncompleteKey(c, "Player", teamA)playerB , _ = datastore.Put(c, playerB, Player{"Player B"})// query dataq := datastore.NewQuery("Team").Filter("Name=", "Team A").Limit(1).KeysOnly()teams, _ := q.GetAll(c, nil)q = datastore.NewQuery("Player").Ancestor(teams[0])var players []Playerq.GetAll(c, &players)但是......如果我想讓 Team 包含一個指向玩家切片的指針,那么我會將它保存為 nil,當(dāng)我查詢它時,我會分配它,有點像這樣:type Team struct { Name string Players *[]Player `datastore:-`}type Player { Name string}// Save data first just for the test caseteamA := datastore.NewIncompleteKey(c, "Team", nil)teamA, _ = datastore.Put(c, teamA, Team{"Team A", nil})/* Saving player data goes here */// query dataq := datastore.NewQuery("Team").Filter("Name=", "Team A").Limit(1)var teams []TeamteamKeys, _ := q.GetAll(c, teams)q = datastore.NewQuery("Player").Ancestor(teamKeys[0])q.GetAll(c, teams[0].Players)這是模擬關(guān)系的好方法嗎?對于我的應(yīng)用程序,樹狀結(jié)構(gòu)將是完美適合我手指的戒指?;蛘摺氵€有什么建議嗎?
- 1 回答
- 0 關(guān)注
- 157 瀏覽
添加回答
舉報
0/150
提交
取消