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

顺序,注意顺序

    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 是有序的。排序字段的顺序是会影响结果和性能的。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容