猿问

KeysOnly 函数不返回键

我对 进行了一些试验GAE,但现在我遇到了问题。首先我存放一些东西进入datastore,用NewIncompleteKey。所以问题来了。我的网站向后端发送时间戳(我将它们作为“ID”处理)。然后我解析并想从datastore. 我以为我可以做到这一点。


type Food struct{

    Id int64

    Course string

    Name string 

    Date string

    Price float64

}


...Some Code...


func deleteEntries(mealsID []string, r *http.Request) int{

    // Get context from 

    c := appengine.NewContext(r);



    for _,id := range mealsID{

        var key *datastore.Key = nil

        q := datastore.NewQuery("Meal").Ancestor(mealStoreKey(c)).Filter("Course =", "dessert").KeysOnly()

        _, err := q.GetAll(c, key)

        if err != nil{

            return 0

        }

        log.Printf("Here the keys: %T %v ", key, key)

        log.Printf("%v ", id)

        e := datastore.Delete(c, key)

        if e != nil{

            return 33       

        }       

    }


    return len(mealsID)

}

但它不起作用,因为我在datastore.Delete()函数中遇到错误。任何人的想法?


白衣非少年
浏览 180回答 1
1回答

青春有我

密钥从 返回GetAll。所以你应该写:keys, err := q.GetAll(c, nil)…err = datastore.DeleteMulti(c, keys)GetAll忽略dst仅键请求的参数 -数据存储引用。因此,在上面的示例中,key仍将设置为nilwhich 解释错误。
随时随地看视频慕课网APP

相关分类

Go
我要回答