我試圖按上次交互對文檔進行排序。 meta_data.access_times是一個數組,每次用戶進行交互時都會更新,並且新的日期對象會附加到數組的最後一個元素。有什麼方法可以按數組的最後一個元素排序?按數組最後一個元素排序mongodb
嘗試1:
private Aggregation makeQuery(String userId) {
return newAggregation(
match(Criteria.where("user_id").is(userId)),
sort(Sort.Direction.DESC, "$meta_data.access_times"),
group(Fields.fields().and("first_name", "$meta_data.user_data.first_name").and("last_name", "$meta_data.user_data.last_name").and("profile_pic", "$meta_data.user_data.profile_pic").and("user_id", "$user_id").and("access_times", "$meta_data.access_times"))
);
}
嘗試2:在文檔
"meta_data" : { "access_times" : [
ISODate("2017-06-20T14:04:14.910Z"),
ISODate("2017-06-22T06:27:32.210Z"),
ISODate("2017-06-22T06:27:35.326Z"),
ISODate("2017-06-22T06:31:28.048Z"),
ISODate("2017-06-22T06:36:19.664Z"),
ISODate("2017-06-22T06:37:00.164Z")
] }
好吧,我們似乎錯過了文檔實際外觀的任何表示。謹慎與我們分享? –
@NeilLunn更新 –
所以「最後」總是附加,因此「最新」?通常只是檢查。 –