MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

PHP MongoDB агрегира $match и $group и $addToSet

Ако не ви интересува редът, в който се появяват, можете да изградите два масива от user1 и user2, след което да ги свържете заедно на по-късен етап. Това обаче няма да се справи с дедупликирането.

$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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB текстов индекс на всички полета, използващи Java

  2. Как да деактивирам регистрирането на mongoDB java драйвер?

  3. Използвайте низова променлива в LINQ ламбда израз

  4. Преоформете документи чрез разделяне на стойност на поле

  5. Как всъщност се запазват сесиите на connect-mongo MongoStore?