var (
type User struct{
Id bson.ObjectId `bson:"_id"`
Name string
}
type Post struct{
Id bson.ObjectId `bson:"_id"`
Uid string
User User
ref mgo.DBRef
Title string
}
)
// denemek 10000 kezmgo cinsinden dbref nasıl telafi edilir?
id := bson.NewObjectId()
user := &User{ id, "test"}
db.C("users").insert(user)
post := db.C("Post").insert(&Post{Uid: id.hex(), ref: mgo.DBRef{"ref":"users", "id": id}, Title:"test dbref"})
// ilk yolu çok kirli -_- ekler!
// MySQL:? Ref özniteliği ile, user.id = post.uid, MgO nasıl yapılacağına ilişkin kullanıcıları katılmak
posts := new([]User)
db.C("posts").Find(nil).All(posts)
ids := []bson.ObjectId
for _, p := range posts{
ids = append(ids, p.Uid)
}
users := make([]User, len(ids))
db.C("users").Find(bson.M{"_id": {"$in": ids}}).All(users)
//and then set the User attribute?
for _,u := range users {
for _, m := range m{
if m.Uid == u.Id {
m.User = m
}
}
}
ikincil yol bıraktı, ama mgo.session ma ile,
for _,m := range posts{
db.FindRef(m.ref).One(&m.User)
}
// 3th yolu findid çalışacağım pReduce ??
bu benim ilk golang + mongodb'im, bu yüzden dbref veya birleşimlerini arşivlemenin en iyi yolu nedir? Yerine DBRef kullanmanın
Thx
'a bakın? Aynı sorunum var – alioygur
Bu yuvalanmış döngü içinde m.User = u istediğinizi düşünürdüm. – ijt