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

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

在 Springdata MongoDB 中按數組值排序和使用分頁查詢 mongoDB

在 Springdata MongoDB 中按數組值排序和使用分頁查詢 mongoDB

月關寶盒 2022-06-15 17:17:37
我正在嘗試按數組值(除了其他字段)查詢排序的 mongoDB 集合,并且結果也需要分頁。排序不適用于數組值,但適用于其他字段。這是代碼:sortBy = "programInstance.title.descriptions[0].value";PageRequest pageRequest = = PageRequest.of(filter.getPageNumber(), filter.getPageSize(),                    new Sort("DESC".equalsIgnoreCase(filter.getSortOrder()) ? Sort.Direction.DESC : Sort.Direction.ASC, sortBy));Page<Offer> st = new PageImpl<>(mongoTemplate.find(query.with(pageRequest),Offer.class), pageRequest, pageCount);很感謝任何形式的幫助..
查看完整描述

2 回答

?
慕標5832272

TA貢獻1966條經驗 獲得超4個贊

它成功地使用了這個表達式 sortBy = "programInstance.title.descriptions.0.value";



查看完整回答
反對 回復 2022-06-15
?
四季花海

TA貢獻1811條經驗 獲得超5個贊

//One or two records from your collection

const data = [{

  name: 'abc',

  place: 'US',

  zone: 'Pacific'

}, {

  name: 'xyz',

  place: 'PK',

  zone: 'Asia'

}, ]

const fields = Object.keys(data[0]);

console.log("Fields in collection: ",fields);

const sortBy = fields[0];

console.log("Sort By: ", sortBy);

//const sort = new Sort("DESC".equalsIgnoreCase(filter.getSortOrder()) ? //Sort.Direction.DESC : Sort.Direction.ASC, sortBy);

//PageRequest pageRequest = = PageRequest.of(filter.getPageNumber(), //filter.getPageSize(), sort);

//Page < Offer > st = new PageImpl < > //(mongoTemplate.find(query.with(pageRequest), Offer.class), pageRequest, //pageCount);


sort 參數是一個value(字符串類型),在其上執行排序,您不能傳遞需要進一步評估(在您的情況下)以獲取值的字符串。而是直接將您的值保存到您的sortBy變量中,然后傳遞sortBy給您的查詢。


查看完整回答
反對 回復 2022-06-15
  • 2 回答
  • 0 關注
  • 302 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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