Коли потрібно використовувати $elemMatch?
$elemMatch потрібен тоді, коли всередині масиву потрібно перевірити кілька умов одночасно на один і той самий елемент.
Приклад без $elemMatch (не підходить):
js
db.users.find({
"scores.value": { $gt: 50 },
"scores.type": "math"
})MongoDB може знайти один елемент з value > 50 і інший елемент з type = "math" - тобто умови виконаються на різних елементах масиву, що неправильно.
Правильний запит із $elemMatch:
js
db.users.find({
scores: {
$elemMatch: { value: { $gt: 50 }, type: "math" }
}
})Тепер обидві умови стосуються одного елемента масиву scores.
Підсумок для junior:
$elemMatch використовується, коли в масиві потрібно знайти елемент, який одночасно задовольняє кілька умов, а не просто присутній у масиві.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.