【问题标题】:MongoDB go driver maintain sort orderMongoDB go驱动维护排序顺序
【发布时间】:2021-05-19 10:30:41
【问题描述】:

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

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

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

【问题讨论】:

    标签: mongodb sorting go


    【解决方案1】:

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

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

    【讨论】:

    • ok 这工作 cur, err := collection.Find( ctx, filter, options.Find().SetLimit(limit).SetSort(bson.D{ {Key: "timestamp", Value: -1},{键:“_id”,值:-1},}),)
    猜你喜欢
    • 1970-01-01
    • 2017-06-10
    • 1970-01-01
    • 2020-02-02
    • 2020-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多