登录
首页 >  Golang >  Go问答

MongoDB Go驱动程序是否保留并维护bson.M数组的顺序?

来源:stackoverflow

时间:2024-02-14 23:27:26 436浏览 收藏

珍惜时间,勤奋学习!今天给大家带来《MongoDB Go驱动程序是否保留并维护bson.M数组的顺序?》,正文内容主要涉及到等等,如果你正在学习Golang,或者是对Golang有疑问,欢迎大家关注我!后面我会持续更新相关内容的,希望都能帮到正在学习的大家!

问题内容

我正在使用 mongodb go 驱动程序,并且仍在弄清楚如何聚合。 我的问题是,如果我使用 []bson.m 作为管道,如下面的代码所示:

collection.Aggregate(
    ctx,
    []bson.M{
        bson.M{
            "$match": filter,
        },
        bson.M{
            "$sort": sort,
        },
    },
)

是否确定匹配始终在排序之前?我应该切换到 mongo.pipeline ([]bson.d) 来代替 100% 维持订单吗?谢谢


解决方案


[]bson.M 是一个切片,并且切片确实保持顺序。 $match 将始终被首先获取,$sort 作为第二个。

bson.M 是一个映射,因此如果其中有多个元素(键值对),则不会维持其中的顺序。

您可以使用对您来说更方便的选项([]bson.M[]bson.Dmongo.Pipeline)。

当单个文档中的顺序很重要时,例如,您必须使用 bson.D按多个字段排序时。详情请参见bson.D vs bson.M for find queries

以上就是《MongoDB Go驱动程序是否保留并维护bson.M数组的顺序?》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>