某个集合, 要获取某个字段的最大值,有两种办法,一个是用sort, 另一个是用聚合(Aggregate),下面是代码演示:
sort:
var ID uint64
func initIDEx() {...clientOptions := options.Client().ApplyURI("mongodb://localhost:27017")
client, err := mongo.Connect...{bson.D{
{"$group", bson.D{
{"_id", ""},
{"maxid", bson.D{{"$max", "$...id"}}},
},
}},
}
cur, err := col.Aggregate(context.TODO(), pip)
if err...(int64))
}
}
}
总结一下:
两种办法的性能,在不同的场景下,会有很大差异
如果查找的字段有设置index,那么sort很快,
反之,没有索引的情况下,聚合要快。