やりたいこと:
処理対象のドキュメントをmongoDBのコマンドで下記した期待する結果を出力したいです。
(一部配列を含まないドキュメントもあります)
処理対象のドキュメント
json
1{ 2 "_id": ObjectId("60ddc26b03edfb7a6b424f10"), 3 "member": [ 4 { 5 "joinDate": "2021-07-01 12:00:00.000", 6 "username": "John" 7 }, 8 { 9 "joinDate": "2021-07-01 13:00:00.000", 10 "username": "Maria" 11 } 12 ], 13 "createdAt": "2021-07-01 11:00", 14 "roomName": "roomA", 15} 16{ 17 "_id": ObjectId("60ddbcccd495870939756dcb"), 18 "member": [ 19 { 20 "joinDate": "2021-07-01 14:00:00.000", 21 "userName": "Jack" 22 }, 23 { 24 "joinDate": "2021-07-01 11:00:00.000", 25 "userName": "George" 26 } 27 ], 28 "createdAt": "2021-07-01 10:00", 29 "roomName": "roomB" 30} 31{ 32 "_id": ObjectId("60ddbcccd495870939756dcc"), 33 "createdAt": "2021-07-01 12:00", 34 "roomName": "roomC" 35}
以下の条件を満たす結果を出力する
- joinDateが最も新しい要素のみドキュメント内の配列の2つの要素をドキュメントに展開する
- 更に配列の要素名を変更し(接頭辞にlatestを付与)する
- ドキュメントをlatestJoinDateの降順に並び替える
- memberの要素が存在しないドキュメントは出力しない
期待する結果
json
1{ 2 "_id": ObjectId("60ddbcccd495870939756dcb"), 3 "latestJoinDate": "2021-07-01 14:00:00.000", 4 "latestUserName": "Jack", 5 "createdAt": "2021-07-01 10:00", 6 "roomName": "roomB" 7} 8{ 9 "_id": ObjectId("60ddc26b03edfb7a6b424f10"), 10 "latestJoinDate": "2021-07-01 13:00:00.000", 11 "latestUserName": "Maria", 12 "createdAt": "2021-07-01 11:00", 13 "roomName": "roomA", 14}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。