Skip to main content

Коли потрібно використовувати $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

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.