亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang MongoDB 驅動程序黑色

Golang MongoDB 驅動程序黑色

Go
呼啦一陣風 2023-07-26 19:30:32
如何使用golang mongodb驅動查詢find?我試試這個:db.Collection("products").Find(nil, bson.M{}, &options.FindOptions{Sort: "-price"})但我收到了這個錯誤:無法將字符串類型轉換為 BSON 文檔:WriteString 只能在位于元素或值上時寫入,但位于頂層上我不知道要傳遞給 Sort 變量什么,因為它是一個接口{}。
查看完整描述

4 回答

?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

嘗試下面的代碼


findOptions := options.Find()

// Sort by `price` field descending

findOptions.SetSort(bson.D{{"price", -1}})



db.Collection("products").Find(nil, bson.D{}, findOptions)


查看完整回答
反對 回復 2023-07-26
?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

我無法將 ?? 傳遞bson.D給選項(這導致了錯誤)。但這段代碼對我有用:


    queryOptions := options.FindOneOptions{}

    

    queryOptions.SetSort(bson.D{{"priority", -1}, {"last_error_time", 1}})


    sResult := collection.FindOne(context.TODO(), queryFilter, &queryOptions)


查看完整回答
反對 回復 2023-07-26
?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

我在嘗試解決相關問題時遇到的一些注釋:

  • 如果嘗試按多個字段排序,請務必使用 bson.D 而不是 bson.M,因為 bson.M 不保留順序。

  • 如果嘗試以編程方式構建多個排序字段,請嘗試
    將 bson.E 附加到 bson.D

  • 正如 dassum 所做的那樣,按照mongo 文檔的
    建議傳遞 bson.M{} 以獲得空過濾器

應用:

sort := bson.D{}

for _, example := examples {

? ? sort = append(sort, bson.E{example, 1})

}


findOptions.SetSort(sort)

db.Collection("products").Find(nil, bson.D{}, findOptions)


查看完整回答
反對 回復 2023-07-26
?
茅侃侃

TA貢獻1842條經驗 獲得超22個贊

還有一點需要注意,確保字段名稱的映射正確。就我而言,我試圖對字段進行排序createdAt,但在意識到我的 mongodb 字段被映射為createdat.

queryOptions.SetSort(bson.D{{"createdat", -1}


查看完整回答
反對 回復 2023-07-26
  • 4 回答
  • 0 關注
  • 190 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號