Smart Segments
Code cheatsheet
Legacy agent
New agent
How to migrate
Structure
Performance
Example
collection('products', {
segments: [{
name: 'Bestsellers',
where: product => {
const query = `
SELECT products.id, COUNT(orders.*)
FROM products
JOIN orders ON orders.product_id = products.id
GROUP BY products.id
ORDER BY count DESC
LIMIT 5;
`;
const products = await models.connections.default.query(query, { type: QueryTypes.SELECT })
return { id: { [Op.in]: products.map(product => product.id) } };
},
}],
});agent.customizeCollection('products', products => {
products.addSegment('Bestsellers', async () => {
const query = `
SELECT products.id, COUNT(orders.*)
FROM products
JOIN orders ON orders.product_id = products.id
GROUP BY products.id
ORDER BY count DESC
LIMIT 5;
`;
const products = await models.connections.default.query(query, { type: QueryTypes.SELECT });
return { field: 'id', operator: 'In', value: products.map(product => product.id) };
});
});Last updated