Проверка наличия общих данных внутри массива объектов с помощью mongoose

#javascript #node.js #mon&odb #mon&oose

#javascript #node.js #mon&odb #mon&oose

Вопрос:

Моя схема mon&oose выглядит следующим образом

 Project: {
    name: Strin&,
    stat: Number,
    users: [
        {user_id: Strin&}
    ]
}
  

Таким образом, каждый проект содержит несколько пользователей. Мне предоставлены два идентификатора пользователя, и мне нужно найти документы, которые содержат оба этих идентификатора. Пробовал использовать elemmatch, но не могу определить правильный синтаксис. Пожалуйста, предложите способы поиска подобных документов.

Это код, который я пробовал

     Project.find({ 
    users: { 
       $elemMatch: { id: req.query.id1 },
       $elemMatch: { id: req.query.id2 } 
    }
 })
  

но это возвращает весь проект, который содержит любой из идентификаторов, а не оба.

Комментарии:

1. Можете ли вы добавить код, который вы также пробовали. Так что кто-нибудь может здесь помочь.

Ответ №1:

Итак, мой исходный код был в порядке, он не выполнялся из-за некоторых незначительных ошибок в других областях.

  Project.find({ 
    users: { 
        $elemMatch: { id: req.query.id1 },
        $elemMatch: { id: req.query.id2 } 
    }
 })
  

Это код. Я оставлю это здесь на случай, если кто-то столкнется с такой же проблемой