Tengo un problema con el objeto de matriz.
"userId": "63317e7f9746ba9719845b6e",
"items": [
{
"productId": "Z357",
"piece": 1,
"_id": "63333427d7ea226b2462e734"
},
{
"productId": "A541",
"piece": 1,
"_id": "6333342cd7ea226b2462e738"
},
{
"productId": "G31",
"piece": 1,
"_id": "633334ea1ca2b582ddd0bc62"
},
{
"productId": "K1123",
"piece": 1,
"_id": "6333351028b43b58b8f83ba3"
}
],
Tengo una matriz como esa. Quiero obtener un artículo específico con productId,
const checker = await Cart.findOne({
"items.productId": productId,
});
Estoy revisando una matriz como esa, pero me está dando todos los elementos que contienen productId, ¿cómo puedo obtener solo lo que estoy filtrando?
Puede probar de esta manera con la proyección para obtener solo el elemento coincidente donde su productId de producto es igual al productId de producto proporcionado,
const checker = await Cart.findOne({items:{ $elemMatch:{ productId: productId}}},
{userId:1,"items.$": 1});