#javascript #mongodb #mongoose #find #populate
Вопрос:
У меня есть эти данные, поле «контакты» которых ссылается на другую коллекцию:
{
"_id":{"$oid":"61549125765ffb0f0477678d"},
"contacts":[{"$oid":"61549123765ffb0f04776787"}],
"username":"petete",
"phoneNumber":" 222222222222",
"__v":{"$numberInt":"0"},
"socketId":"CEvkxvonNfXyhZMFAAAJ"
}
Если я найду его с помощью функции populate(), я получу это:
{
contacts: [ //i want to show this array
{
contacts: [Array],
_id: 61549123765ffb0f04776787,
username: 'tachancka',
phoneNumber: ' 111111111111',
__v: 0,
socketId: 'C3srKMQB80tIrC2jAAAK'
}
],
_id: 61549125765ffb0f0477678d,
username: 'petete',
phoneNumber: ' 222222222222',
__v: 0,
socketId: 'CEvkxvonNfXyhZMFAAAJ'
}
Поэтому мне нужно найти первый массив «контакты» по идентификатору. Я попробовал использовать этот код, но он возвращает значение null:
User.findOne({_id: userLoggedId, 'contacts._id': contactId}).populate({
path: 'contacts',
model: 'User'
})
И это мои недостатки:
userLoggedId = '61549125765ffb0f0477678d'
contactId = '61549123765ffb0f04776787'
Что я делаю не так?