Obtengo todos los productos y relleno la categoría con mongoDB. También tengo una matriz con identificadores de categoría y quiero obtener solo productos que tengan esos identificadores en el objeto de categoría. ¿Cómo seleccionar solo estos productos?
arr of ids [ '615e94cab42d2274f0481232' ] arr of products [ { _id: new ObjectId("615e945cb42d2274f0481211"), image: '', category: { _id: new ObjectId("615da90b689b8ef91fa90afd"), name: 'Разное' }, name: '435пукп', type: 'В упаковке', piecesPerPackage: 2, pricePerPiece: 1, pricePerPackage: 2, weight: 12, description: 'вапвап' }, { _id: new ObjectId("615eaa08f68e788c63817641"), image: '', category: { _id: new ObjectId("615e94cab42d2274f0481232"), name: '2' }, name: '2', type: 'В упаковке', piecesPerPackage: 2, pricePerPiece: 2, pricePerPackage: 2, weight: 2, description: '2' } ]
async sortCatalog(arr) { const products = await CatalogModel.find().lean() .populate("category", "name").select('-__v'); console.log("arr of ids", arr) console.log("arr of products", products) }
Usa category._id
para encontrarlo.
await CatalogModel.find({'category._id':new ObjectId("615e94cab42d2274f0481232")})