簡體   English   中英

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

[英]Query mongoDB sorting by array value and using pagination in Springdata MongoDB

我正在嘗試查詢按數組值排序的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);

很感謝任何形式的幫助..

 //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傳遞給您的查詢。

它成功使用此表達式sortBy =“ programInstance.title.descriptions.0.value”;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM