gpt4 book ai didi

mongodb - mongodb go driver中维护了bson.M数组的顺序吗?

转载 作者:行者123 更新时间:2023-12-03 10:09:06 25 4
gpt4 key购买 nike

我正在使用Mongodb go驱动程序,仍然在想如何聚合。
我的问题是,是否使用[] bson.M作为管道,如以下代码所示:

    collection.Aggregate(
ctx,
[]bson.M{
bson.M{
"$match": filter,
},
bson.M{
"$sort": sort,
},
},
)
可以确定匹配始终是排序之前的第一吗?我应该改用mongo.Pipeline([] bson.D)来保持100%的订单吗?谢谢

最佳答案

[]bson.M是一个 slice ,并且 slice 确实保持顺序。 $match将始终放在第一位,$sort作为第二位。bson.M是一个映射,因此,如果其中包含多个元素(键-值对),则不会保持其内部顺序。
您可以使用对您来说更方便的任何一种([]bson.M[]bson.Dmongo.Pipeline)。
当订单在单个文档中很重要时,您必须使用bson.D,例如在按多个字段排序时。有关详细信息,请参见bson.D vs bson.M for find queries

关于mongodb - mongodb go driver中维护了bson.M数组的顺序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66272948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com