Я использую мангуста и имею большое количество таких объектов:
{
"_id" : ObjectId("5bfeb4aa0a49bf3d84d885b5"),
"category" : [
"Cult",
"Space Opera"
],
"actors" : [
"David Prowse in the role of Darth Vader",
"Mark Hamill as Luke Skywalker",
"Carrie Fisher as Leia Organa",
...
],
"title" : "Star Wars",
"description" : ".....",
"rating" : 4.65,
"__v" : 0
}
Мне нужно найти все фильмы, которые соответствуют моему массиву актеров
например: ["David Prowse", "Mark Hamill", "Carrie Fisher"]
При использовании этого массива один из фильмов должен быть Звездные войны , но в объекте фильма нет чистых имен актеров, поэтому, вероятно, его необходимо сопоставить срегулярное выражение или что-то подобное для сопоставления по подстроке (без учета регистра).
Мой фактический запрос всегда возвращает пустой массив документов ----------
let arrayOfqueries = [];
for (let i = 0; i < arrayOfActors.length; i++) {
arrayOfqueries.push({$regex: ".*" + arrayOfActors[i] + ".*", $options: "i"});
}
Utils.searchFilms({
"actors": {
"$all": arrayOfqueries
}
}).then((docs) => {
console.log(docs)
}).catch((err) => {
console.log(err);
});