无法将Yaml文件解组为struct

I am trying to UnmarshalS into DataCollectionFromYAML

--- 
- 
  labels: cats, cute, funny
  name: "funny cats"
  url: "http://glorf.com/videos/asfds.com"
- 
  labels: cats, ugly,funny
  name: "more cats"
  url: "http://glorf.com/videos/asdfds.com"
- 
  labels: dogs, cute, funny
  name: "lots of dogs"
  url: "http://glorf.com/videos/asasddfds.com"
- 
  name: "bird dance"
  url: "http://glorf.com/videos/q34343.com"

type DataFromYAML struct {
    Labels string `yaml:"labels"`
    Name   string `yaml:"name"`
    URL    string `yaml:"url"`
}

type DataCollectionFromYAML struct {
    data []VidedFromYAML
}

Here is part of my code and I am using gopkg.in/yaml.v2 package

yamlFile, err := ioutil.ReadAll(r)
    if err != nil {
        return err
    }
    var data models.DataFromYAML

    err2 := yaml.Unmarshal(yamlFile, data)


I am getting the error message: cannot unmarshal !!seq into models.DataCollectionFromYAML

insted of models.DataFromYAML use array of []models.DataFromYAML package main

import (
    "fmt"

    "github.com/ghodss/yaml"
)


const data = `--- 
- 
  labels: cats, cute, funny
  name: "funny cats"
  url: "http://glorf.com/videos/asfds.com"
- 
  labels: cats, ugly,funny
  name: "more cats"
  url: "http://glorf.com/videos/asdfds.com"
- 
  labels: dogs, cute, funny
  name: "lots of dogs"
  url: "http://glorf.com/videos/asasddfds.com"
- 
  name: "bird dance"
  url: "http://glorf.com/videos/q34343.com"
`

type DataFromYAML struct {
    Labels string `yaml:"labels"`
    Name   string `yaml:"name"`
    URL    string `yaml:"url"`
}


func main() {
    var test []DataFromYAML
    err := yaml.Unmarshal([]byte(data), &test)
    if err != nil {
        fmt.Printf("err: %v
", err)
        return
    }

    fmt.Println(test)
}

Output:

[{cats, cute, funny funny cats http://glorf.com/videos/asfds.com} {cats, ugly,funny more cats http://glorf.com/videos/asdfds.com} {dogs, cute, funny lots of dogs http://glorf.com/videos/asasddfds.com} { bird dance http://glorf.com/videos/q34343.com}]