rocky
(Rocky Sharma)
May 13, 2018, 11:52am
1
I am struggling to find, what type of uid should be set for struct in golang.
I have follow predicate of uid type and in my Users struct, I have follow string type like below
type Users struct {
Name string
Email string
Follow string
}
and my predicate is:-
Name: string @index(term) .
Email: string @index(exact) @upsert .
Follow: uid @count
Whenever, I am trying to create user without providing follow data.
It gives me an error:- “rpc error: code = Unknown desc = Input for predicate Follow of type uid is scalar ”
What struct type should I use for “Follow”. I have more uid type predicate.
I don’t know golang but the example here is specifying uid within the back tick json syntax.
As in,
Uid string `json:"uid,omitempty"`
See person struct
https://godoc.org/github.com/dgraph-io/dgo
1 Like
rocky
(Rocky Sharma)
May 13, 2018, 12:55pm
3
Thank you bro! This solved the issue but now, OwnerUserID is not storing data passed.
rocky
(Rocky Sharma)
May 13, 2018, 6:01pm
4
I just encountered another error with it, It now omits data completely and does not register the data :-
type Post struct {
UID string `json:"uid,omitempty"`
CreatedAt *time.Time
Body string
Title string
OwnerUserID string `json:"uid,omitempty"`
}
p := Post{
CreatedAt: &cdate,
Body: ask.Content,
Title: ask.Title,
OwnerUserID: "0x2",
}
The recorded information after running below query is:-
me(func: uid($id)) {
uid
Title
OwnerUserID
Tags
}
You can see below output data, it completely omits “OwnerUserID” and has no data stored.
{"me":[
{"uid":"0xb",
"Title":"What should I do to improve my memory?",
"Tags":" story life meToo problem memory health"}
]
}
Rocky,
Did 0x2 exist in the database before you added the post object? If not, meaning you are adding bother owner and post in the same transaction then , I think you need to prefix your golang uids values with the _:
S
rocky
(Rocky Sharma)
May 14, 2018, 5:09am
6
Yes, it already exists in the database. There is already user with uid 0x2. Infact, even if it does not exist, it should have at least stored the data, but it is not storing the data at all.
Here is query and result
{
me(func: uid("0x2")) {
uid
Name
}
}
Result :-
"data": {
"me": [
{
"uid": "0x2",
"Name": "Alice"
}
]
},