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" } }
])