This is my \'usergroups\' data
{
\"_id\": {
\"$oid\": \"58f7537ec422895572e988a1\"
},
\"name\": \"aaa\",
\"groupname\": \"group north,gro
You can use the below aggregation for 3.4 version.
The query will $match documents in the usergroups collection with the mobilenumber followed by $split to split the groupnames and $lookup the groupname in the groups collection for messages. Final step is to $unwind the mobile_group array to $project the messages for each groupname.
db.usergroups.aggregate([
{ $match: { mobilenumber:"0509867865" } },
{ $project: { groupname:{ $split: [ "$groupname", ',' ] } } },
{ $lookup:
{
from: "groups",
localField: "groupname",
foreignField: "groupname",
as: "mobile_group"
}
},
{$unwind:"$mobile_group"},
{ $project : { groupname:"$mobile_group.groupname", "messages" : "$mobile_group.message" } }
])