>  Q&A  >  본문

집계 쿼리를 사용한 후 그룹 컬렉션 정렬

모든 사용자가 동일한 이름을 갖도록 집계를 사용하고 있는데 이 API를 쿼리할 때마다 $sort by 'name' 필드를 추가해도 반환된 결과가 정렬되지 않습니다.

으아악

기록 순서가 정렬되지 않았습니다

P粉558478150P粉558478150258일 전323

모든 응답(1)나는 대답할 것이다

  • P粉739942405

    P粉7399424052024-02-05 00:05:39

    당신은 case 进行排序
    에 무감각해야 합니다 nameage,

    가 필요하다고 가정해 보세요.

    다음 쿼리를 사용해 보세요:

    [ { "$project": { "name": 1, "age" : 1, "insensitive": { "$toLower": "$name" } }},{ $group: { _id: ' $name', count: { $sum: 1 }, users: { $push: '$$ROOT' } } }, { $match: { count: { $gte: 1 } } }, { $unwind: '$用户' }, { $replaceRoot: { newRoot: '$users' } }, { $sort: { insensitive: 1 } } ]

    출력에 추가할 필드가 더 있는 경우 위 쿼리 대신 다음 쿼리를 사용해 보세요.

    [ { "$project": { "name": 1, createdAt : 1 }},{ $group: { _id: '$name', count: { $sum: 1 }, users: { $push : '$$ROOT' } } }, { $match: { count: { $gte: 1 } } }, {"$addFields":{"users.insensitive": { "$toLower": "$_id" } ,}}, { $unwind: '$users' }, { $replaceRoot: { newRoot: '$users' } }, { $sort: { insensitive: 1 } } ]

    회신하다
    0
  • 취소회신하다