sql >> Database >  >> NoSQL >> MongoDB

PHP MongoDB aggregeert $match en $group en $addToSet

Als het je niet uitmaakt in welke volgorde ze verschijnen, kun je twee arrays van user1 en user2 bouwen en ze in een later stadium samenvoegen. Dit zal echter niet overweg kunnen met ontdubbelen.

$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'
                 ]
            ]
         ]
    ],
]);



  1. MongoDB $ltrim

  2. Mongoose MODEL-update() versus opslaan()

  3. Mongoose-fout - geen 'toObject'-methode na upgrade

  4. MongoDB + JS Datum verschoven -1 dag