Как получить документ с указанным c набором массива - PullRequest
1 голос
/ 12 января 2020

Я пытаюсь получить документы, в которых указан c пользователей в массиве пользователей

То есть

  Schema.books({
    users:[ { type: mongoose.Schema.types.objectId, ref:'users' } ]
  })

Нет, я не пытаюсь получить книжные документы с указанием c количество пользователей, скажем, два пользователя.

Я попробовал это

Let usersId = [ user1, user2 ]

Book.find().where(users).in(usersId)

Но вместо этого я получаю массив всех элементов user1, членом которых я полностью потерян, что делать Мне очень нужна твоя помощь

1 Ответ

1 голос
/ 12 января 2020

вам нужно использовать оператор $and . Без оператора $ and вы запрашиваете книги с userId1 или userId2

Book.find({
  $and: [{ users: userId1 }, { users: userId2 }]
});

Если ваш userId l oop большой или не фиксированный, вы можете сделать что-то вроде этого:

Book.find({
  $and: userIds.map(v => ({users:v}))
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...