Help with func(*iter)For

25 views
Skip to first unread message

Greg Worley

unread,
Aug 24, 2011, 4:44:16 PM8/24/11
to mgo-...@googlegroups.com
Trying to use func(*iter)For and implement the example from the docs.


package main

import (
        "fmt"
        "launchpad.net/mgo"
)

type Person struct {
        Name  string
        Phone string
}

func main() {
        session, err := mgo.Mongo("mongotest")
        if err != nil {
                panic(err)
        }
        defer session.Close()

        session.SetMode(mgo.Monotonic, true)

        c := session.DB("test").C("people")

        err = c.Insert(&Person{"Ale", "+55 53 8116 9639"},
                &Person{"Cla", "+55 53 8402 8510"})
        if err != nil {
                panic(err)
        }

                iter, err := c.Find(bson.M{}).iter()
                if err != nil {
                panic(err)
        }
        var result *Person
        err := iter.For(&result, func() os.Error {
                fmt.Println(result.Name)
                return nil
        })
        if err != nil {
                panic(err)
        }
}

Greg Worley

unread,
Aug 24, 2011, 5:00:45 PM8/24/11
to mgo-...@googlegroups.com
seems iter, err := c.Find(bson.M{}).iter()
gives me iter as a query type, and not type iter.


Gustavo Niemeyer

unread,
Aug 24, 2011, 5:04:05 PM8/24/11
to mgo-...@googlegroups.com
Hey Greg,

> seems iter, err := c.Find(bson.M{}).iter()
> gives me iter as a query type, and not type iter.

Find will give you a Query value:

http://goneat.org/lp/mgo#Collection.Find

Iter will give you an Iter value:

http://goneat.org/lp/mgo#Query.Iter

Both Query and Iter support For:

http://goneat.org/lp/mgo#Query.For
http://goneat.org/lp/mgo#Iter.For

--
Gustavo Niemeyer
http://niemeyer.net
http://niemeyer.net/plus
http://niemeyer.net/twitter
http://niemeyer.net/blog

-- I never filed a patent.

Reply all
Reply to author
Forward
0 new messages