我正在发送查找请求并获得属性“items”的响应,这是一个数组。 我不想在最后发送带有响应的数组。我尝试使用delete object.items,但它发送了属性。将数组设置为[]也不起作用。
修改
是的,对不起。我用findById()获取产品。因此,类别不是数组而是对象。所以我不必迭代它。但物品属性不会被删除。这是实际的代码:
router.post('/products', auth, function (req, res) {
var catId = req.body.catId;
Category.getProductsOfCategory(catId, function (err, category) {
if (err) {
res.send({status: false, data: err})
} else {
if (category) {
// do not send items with the product
for (var i = 0; i < category.products.length; i++) {
var itemCount = 0;
// get only the count of items where no selldate was set
for (var k = 0; k < category.products[i].items.length; k++) {
if (!category.products[i].items[k].selldate) {
itemCount++;
}
}
category.products[i].itemCount = itemCount;
delete category.products[i].items;
}
res.send({status: true, data: category.products})
} else {
res.send({status: false, data: 'not found'})
}
}
})
});
答案 0 :(得分:0)
将category
文档转换为普通对象
if (category) {
category = category.toObject()
// or
category = category._doc
//...
}