sql >> Base de Datos >  >> NoSQL >> MongoDB

PHP MongoDB agrega $match y $group y $addToSet

Si no le importa el orden en que aparecen, puede crear dos conjuntos de usuario1 y usuario2 y luego combinarlos en una etapa posterior. Sin embargo, esto no manejará la deduplicación.

$chatUserID = $_POST["chatUserID"]; // 2 in my example
$chatCursor = $chatCollection->aggregate([
    [
        '$match' => [
            '$or' =>[
                ["chatUser1ID" => $chatUserID],
                ["chatUser2ID" => $chatUserID]
            ]
        ]
    ], [
        '$group' => [
            '_id' => 0,
            'chatUsers1' => ['$addToSet' => '$chatUser1ID'],
            'chatUsers2' => ['$addToSet' => '$chatUser2ID'],
        ]
    ], [
        '$addFields' => [
            'chatUsers' => [
                 '$concatArrays' => [
                     '$chatUsers1',
                     '$chatUsers2'
                 ]
            ]
         ]
    ],
]);