package main import ( "labix.org/v2/mgo" "labix.org/v2/mgo/bson" ) type Book struct { Id string `bson:"_id"` Title string Author []string Contributor string Publisher string Description string Subject []string Date string Lang []string Type string Format string Source string Relation string Coverage string Rights string Meta string Path string Cover string CoverSmall string Keywords []string } /* optional parameters: length and start index * * Returns: list of books, number found and err */ func GetBook(coll *mgo.Collection, query bson.M, r ...int) (books []Book, num int, err error) { var start, length int if len(r) > 0 { length = r[0] if len(r) > 1 { start = r[1] } } q := coll.Find(query) num, err = q.Count() if err != nil { return } if start != 0 { q = q.Skip(start) } if length != 0 { q = q.Limit(length) } err = q.All(&books) for i, b := range books { books[i].Id = bson.ObjectId(b.Id).Hex() } return }