美文网首页
Go 中使用mongodb官方驱动需要注意的点

Go 中使用mongodb官方驱动需要注意的点

作者: 风亡小窝 | 来源:发表于2019-06-17 02:29 被阅读0次

    顺序,注意顺序

        cursor, err := mdb.Collection("idols_forum_count").Find(context.TODO(),
            bson.M{},
            &options.FindOptions{
                Sort: bson.D{
                    {"date", -1},
                    {"count", -1},
                },
                Skip:  &skip,
                Limit: &perPage,
                Projection: bson.M{
                    "_id":     0,
                    "idol_id": 1,
                    "count":   1,
                    "date":    1,
                },
            },
        )
    
        cursor, err := mdb.Collection("idols_forum_count").Find(context.TODO(),
            bson.M{},
            &options.FindOptions{
                Sort: bson.M{
                    "date": -1,
                    "count": -1,
                },
                Skip:  &skip,
                Limit: &perPage,
                Projection: bson.M{
                    "_id":     0,
                    "idol_id": 1,
                    "count":   1,
                    "date":    1,
                },
            },
        )
    

    你发现这两段代码的不同之处了吗?

                Sort: bson.D{
                    {"date", -1},
                    {"count", -1},
                },
    

                Sort: bson.M{
                    "date": -1,
                    "count": -1,
                },
    

    以一定要牢记 bson.M 是无序的,bson.D 是有序的。排序字段的顺序是会影响结果和性能的。

    相关文章

      网友评论

          本文标题:Go 中使用mongodb官方驱动需要注意的点

          本文链接:https://www.haomeiwen.com/subject/epxofctx.html