Приветствую всех.
Есть документ с записями вида:
{
"recipient": "Josh",
"sender": "Mike"
}
Каждая запись - это определенное сообщение от одного пользователя другому. Моя цель - получить уникальный список людей, с которыми общался пользователь (писал им или просто получал сообщения).
Есть два запроса:
contacts_recipient = db.test_collection.distinct(
"recipient",
{"$or": [{"recipient": sender}, {"sender": sender}]
})
contacts_sender = db.test_collection.distinct(
"sender",
{"$or": [{"recipient": sender}, {"sender": sender}]
})
Когда я попытался обьеденить их в один, то получилось следующее:
result = db.test_collection.aggregate([
{"$match": {"$or": [{"recipient": sender}, {"sender": sender}]}},
{"$group": {"_id": {
"$cond": {
"if": {
"sender": {"$eq": ["$sender", sender]}
},
"then": "$recipient",
"else": "$sender"}
}}}
])
Но это не работает. Почему?