Как я могу определить, равно ли значение чему-либо в модели mongodb, имеющей массив?

#node.js #mongodb

Вопрос:

Я пытаюсь проверить, есть ли у моего пользователя определенное значение в столбце «Друзья».

Код, который я пытаюсь, это

 exports.findFriend = async (userName, user) => {
    return await User.findOne({ _id: user._id }, { friends:{ userName: userName } } });
};
 

Это не работает должным образом.

Ответ №1:

Вы должны использовать ключевое слово $elemMatch, потому что вы пытаетесь найти значение внутри массива

Используйте следующий код

 exports.findFriend = async (userName, user) => {
    return await User.findOne({ _id: user._id }, { friends: { $elemMatch: { userName: userName } } });
};
 

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

1. Большое спасибо, это сработало идеально.