code: func (self *Query) Populate(fields ...string) *Query {
  
  	self.populate = append(self.populate, fields...)
  
  	return self
  }
docs: /*
  This method replaces the default object ID value with the defined relation type by specifing one or more field names. After it was succesfully populated
  you can access the relation field values. Note that you need type assertion for this process.
  
  For example:
  	User := connection.Model("User")
  
  	user := &models.User{}
  
  	err := User.Find(bson.M{"firstname" : "Max"}).Populate("Messages").Exec(user)
  
  	if err != nil {
  		fmt.Println(err)
  	}
  
  	for _, user := range users {
  
  		if messages, ok := user.Messages.([]*models.Message); ok {
  
  			for _, message := range messages {
  
  				fmt.Println(message.Sender)
  			}
  		} else {
  			fmt.Println("something went wrong during cast. wrong type?")
  		}
  	}
  
  Note: Only the first relation level gets populated! This process is not recursive.
  */