suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Sortieren Sie die Gruppensammlung nach Verwendung einer aggregierten Abfrage

Ich verwende die Aggregation, um alle Benutzer mit demselben Namen zu haben, aber wenn ich diese API abfrage, werden die zurückgegebenen Ergebnisse nicht sortiert, selbst wenn ich das Feld „$sort by ‚name‘“ hinzufüge.

const aggregateQuery: any = [
            { $group: { _id: '$name', count: { $sum: 1 }, users: { $push: '$$ROOT' } } },
            { $match: { count: { $gt: 1 } } },
            { $unwind: '$users' },
            { $replaceRoot: { newRoot: '$users' } },
            { $sort: { name: 1 } }
        ];`

        const users = await this.userRepository.getModel().aggregate(aggregateQuery).exec();

Die Reihenfolge der Datensätze ist nicht sortiert

P粉558478150P粉558478150417 Tage vor425

Antworte allen(1)Ich werde antworten

  • 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 } } ]

    Antwort
    0
  • StornierenAntwort