4 回答

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊
嘗試下面的代碼
findOptions := options.Find()
// Sort by `price` field descending
findOptions.SetSort(bson.D{{"price", -1}})
db.Collection("products").Find(nil, bson.D{}, findOptions)

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
我無法將 ?? 傳遞bson.D給選項(xiàng)(這導(dǎo)致了錯(cuò)誤)。但這段代碼對我有用:
queryOptions := options.FindOneOptions{}
queryOptions.SetSort(bson.D{{"priority", -1}, {"last_error_time", 1}})
sResult := collection.FindOne(context.TODO(), queryFilter, &queryOptions)

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊
我在嘗試解決相關(guān)問題時(shí)遇到的一些注釋:
如果嘗試按多個(gè)字段排序,請務(wù)必使用 bson.D 而不是 bson.M,因?yàn)?bson.M 不保留順序。
如果嘗試以編程方式構(gòu)建多個(gè)排序字段,請嘗試
將 bson.E 附加到 bson.D正如 dassum 所做的那樣,按照mongo 文檔的
建議傳遞 bson.M{} 以獲得空過濾器
應(yīng)用:
sort := bson.D{}
for _, example := examples {
? ? sort = append(sort, bson.E{example, 1})
}
findOptions.SetSort(sort)
db.Collection("products").Find(nil, bson.D{}, findOptions)

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超22個(gè)贊
還有一點(diǎn)需要注意,確保字段名稱的映射正確。就我而言,我試圖對字段進(jìn)行排序createdAt
,但在意識到我的 mongodb 字段被映射為createdat
.
queryOptions.SetSort(bson.D{{"createdat", -1}
- 4 回答
- 0 關(guān)注
- 200 瀏覽
添加回答
舉報(bào)