У меня есть такая коллекция MongoDB:
_id: ObjectId("5cb089e459552d8b8cc6a9e4")
username: "admin"
password: "12345"
gender: "male"
interestedIn: "female"
movie: Array
0: Object
id: "Avatar"
title: "Avatar"
poster: "~"
1: Object
id: "Titanic"
title: "Titanic"
poster: "~"
У меня есть еще два человека (женщины), такие как «Аватар», а другой «Титаник» в своих фильмах.Теперь я хочу подбирать людей по признаку пола, который их интересует, и когда они разделяют интерес к фильму.Для этого я попытался использовать следующую функцию:
function matches(req, res) {
db.collection('user').find({ 'username': req.session.user.username })
.toArray(function(err, data) {
if (err) {
console.log('An error has occurred', err);
} else {
let interest = data[0].interestedIn;
let movies = data[0].movie;
db.collection('user').find({
gender: interest,
movie: { $elemMatch: { id: 'Avatar' }}
}).toArray(function(err, data) {
res.render('matches.pug', {
data,
user: req.session.user,
interest,
movies
});
});
}
});
}
Когда я запускаю этот код, я получаю только одну девушку, у которой также есть "Аватар" в качестве интереса к фильму, так как я написал id: 'Avatar'
на$elemMatch
.Тем не менее, я хочу иметь возможность вернуть всех людей, которые разделяют интерес к фильму.Есть ли способ, которым я мог бы сделать это?