首页 > 解决方案 > MongoDB go驱动维护排序顺序

问题描述

我使用以下代码查询我的记录:

cur, err := collection.Find(
    ctx,
    filter,
    options.Find().SetLimit(limit).SetSort(map[string]int{"timestamp": -1, "_id": -1}),
)

但是我通过我的 mongodb 日志注意到,顺序有时会更改...变为 _id: -1, timestamp: -1 这会影响查询结果。如何确保时间戳排在第一位?

标签: mongodbsortinggo

解决方案


地图对其元素没有任何顺序保证。bson.D对元素排序很重要的文档使用 a :

SetSort({{"timestamp",-1},{"_id":-1}})

推荐阅读