I have a patients collections that looks like this
[
{
_id: ObjectId(60f5a851e8b5d11111111),
firstName:"test_1",
lastName: "test_last_1"
},
{
_id: ObjectId(60f5a851e8b5d11111112),
firstName:"test_2",
lastName: "test_last_2"
},
]
and a messages collections that looks like this:
[
{
_id: ObjectId(60f5a851e8b5d22222222),
body: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
createdByPatient: null,
createdByUser: ObjectId(60e888ac01198634444444)
},
{
_id: ObjectId(60f5a851e8b5d22222223),
body: "It's a great day",
createdByPatient: ObjectId(60f5a851e8b5d11111111)
createdByUser: null
},
{
_id: ObjectId(60f5a851e8b5d22222224),
body: "I'm a message",
createdByPatient: ObjectId(60f5a851e8b5d11111111)"
createdByUser: null
},
]
I'd like to pull the patients that have messages which match a substring. For example, using the dummy data above and given the substring "day", the desired result should look like this
Results:
[
{
_id: ObjectId(60f5a851e8b5d11111111),
firstName:"test_1",
lastName: "test_last_1",
lastMessage: {
_id: ObjectId(60f5a851e8b5d22222223),
body: "It's a great day",
createdByPatient: ObjectId(60f5a851e8b5d11111111)"
createdByUser: null
}
},
]
This will likely be solved using an aggregation.