Проверьте, соответствует ли каждый элемент в массиве условию

У меня есть коллекция документов:

date: Date
users: [
  { user: 1, group: 1 }
  { user: 5, group: 2 }
]

date: Date
users: [
  { user: 1, group: 1 }
  { user: 3, group: 2 }
]

Я хотел бы запросить эту коллекцию, чтобы найти все документы, в которых каждый идентификатор пользователя в моем массиве пользователей находится в другом массиве [1, 5, 7]. В этом примере соответствует только первый документ.

Лучшее решение, которое я смог найти, это сделать:

$where: function() { 
  var ids = [1, 5, 7];
  return this.users.every(function(u) { 
    return ids.indexOf(u.user) !== -1;
  });
}

К сожалению, это, кажется, ухудшает производительность, заявлено в$, где документы:

$ where оценивает JavaScript и не может использовать индексы.

Как я могу улучшить этот запрос?

Ответы на вопрос(3)

Ваш ответ на вопрос