Search code examples
mongodbgomgo

Count Documents That Match a Query in Mgo


I want to get the count number in a collections based on a field in documents.

According to Mongodb documentation, we can use runCommand() to do so. eg:

db.runCommand( { count:'orders',
                 query: { ord_dt: { $gt: new Date('01/01/2012') } }
               } )

But how do I do this in MGO?

It seem runcommand is not included in Mgo. I am using mgo.v2.


Solution

  • The runCommand() is available in the mgo package as Database.Run(). For an example how to use it, see this answer: Efficient paging in MongoDB using mgo.

    But what you want can simply be achieved by using the Query.Count() method:

    coll := ... // obtain collection...
    
    count, err := coll.Find(bson.M{"ord_dt": bson.M{
        "$gt": time.Date(2012, 1, 1, 0, 0, 0, 0, time.UTC),
    }}).Count()