Если у вас действительно есть доступ только к _id продукта, найдите этот продукт, а затем используйте возвращенный объект для поиска похожих продуктов с помощью find
router.post("/MultiCards/:any", (req, res) => {
let order = req.body.order ? req.body.order : "desc";
let sortBy = req.body.sortBy ? req.body.sortBy : "_id";
let limit = req.body.limit ? parseInt(req.body.limit) : 100;
Product.findById(req.params.any)
.sort([[sortBy, order]])
.limit(limit)
.exec((err, product) => {
if (err) return res.status(400).json({ success: false, err });
Product.find({ Category: product.Category}).then((products) => {
res
.status(200)
.json({ success: true, products, postSize: products.length });
})
});
});
ES2016 Версия
router.post('/MultiCards/:any', async (req, res) => {
const order = req.body.order ? req.body.order : 'desc';
const sortBy = req.body.sortBy ? req.body.sortBy : '_id';
const limit = req.body.limit ? parseInt(req.body.limit) : 100;
try {
const product = await Product.findById(req.params.any).sort([[sortBy, order]])
.limit(limit).exec();
const products = await Product.find({ title: `/${product.title}/i` });
res
.status(200)
.json({ success: true, products, postSize: products.length });
} catch (error) {
res.status(400).json({ success: false, error });
}
Если вы хотите подобное, сделайте запрос, подобный этому /query/i
, как написано в понедельник goose документы
// executes, name LIKE john and only selecting the "name" and "friends" fields
MyModel.find({ name: /john/i }, 'name friends', function (err, docs) { })