Мне нужно создать сервис, который принимает список текста и ищет совпадения во встроенном массиве в документах MongoDB.Например, я должен искать этот список текста:
["Tom", "Keanu", "Arnold"]
в следующих коллекциях:
[{id: "123", title: "Movie 1", cast: [{id: 1, name: "Tom Hanks"}, {id: 2, name: "Actor 2"}]},
{id: "123", title: "Movie 1", cast: [{id: 1, name: "Keanu Reeves"}, {id: 2, name: "Actor 2"}]}
{id: "123", title: "Movie 1", cast: [{id: 1, name: "Arnold Schwarzenegger"}, {id: 2, name: "Actor 2"}]}]
Поиск выше текста должен вернуть эти три фильма.Мне необходимо создать запрос, подобный приведенному ниже:
db.movies.find({cast.name: {$in: [/Tom/, /Keanu/, /Arnold/]}})
Это потому, что согласно официальному документу мы не можем использовать $regex
с $in
.Однако я не могу найти способ перевести это в запрос Spring Data Mongo.
Этот поток Stackoverflow объясняет, как искать один текст во встроенном массиве с помощью регулярных выражений, но я не смогне могу найти ничего о поиске по заданному списку во встроенном документе, используя Spring data Mongo.Любая помощь будет принята с благодарностью.