यदि आप उस क्रम के बारे में परवाह नहीं करते हैं जिसमें वे दिखाई देते हैं, तो आप उपयोगकर्ता 1 और उपयोगकर्ता 2 के दो सरणी बना सकते हैं, फिर बाद के चरण में उन्हें एक साथ जोड़ सकते हैं। हालांकि यह डुप्लीकेटिंग को हैंडल नहीं करेगा।
$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'
]
]
]
],
]);