I've been searching the web for a possible solution to this but all i can find is looking for values in an array. I have a field in my posts collections called summary
which contains a paragraph summary of a specific post. I also have an array of words and I would like to check if at least one of those words are present in the summary, but i'm not sure how to go about this. I'm using a package for laravel called jenssegers to make my queries so looking for resources on how to properly do aggregate queries are very limited. I'd like to return every post whose summary contains at least one word from the array being sent. Is this even possible?
this is my query
$post = Post::raw(function ($collection) use ($request) {
return $collection->aggregate(
[
[
'$elemMatch' => [
'summary' => $request->input('interests')
],
],
[
'$lookup' => [
'as' => 'edits',
'from' => 'editorial',
'foreignField' => '_id',
'localField' => 'edit_id',
],
],
]
);
});
$request->input('interests')
is an array being sent from my front-end which comprises of an array of interes like ['magic','swords','legion']
Not sure what approach to take to this and any help would be greatly appreciated