Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 5x 5x 5x 3x 3x 6x 5x | import Article from "@models/article.model.js";
class ArticleRepository {
async filter(text, tags) {
const article = await new Article();
// Search for text in the article title (case insensitive)
const query = {
title: { $regex: String(text), $options: "i" },
};
// Optionally, the article must ALSO contain one of the given tags
if (tags.length) {
query.$or = [];
for (let tag of tags) {
query.$or.push({ tags: String(tag) });
}
}
return await article.find(query);
}
}
export default ArticleRepository;
|