我在forEach循环期间遇到了这个问题,我的对象是xml2js解析的xml内部循环来自mongoDB的'products'对象: 所以我的代码在这里:
select Date1, Date2
from
(SELECT Month(Date1) as date1 --Alias missing Here
FROM Table1
GROUP BY Date1) t1
left join
(SELECT Month(Date2) as date2 --Alias missing here
FROM Table2
GROUP BY Date2) t2
on
t1.Date1 = t2.Date2
所以在一些周期后我遇到 Product.find(function(err, products){
if(err)return updateDBCallback(err);
if(products.length > 0) {
products.forEach(function (dbProduct) {
var equals = false;
xmlFile.product_list.product.forEach(function (product) {
var productEntity = new Product({
product_id: parseInt(product.id),
parent_id: parseInt(product.parent_id),
sku: product.sku,
title: product.title,
pricenormal: parseFloat(product.price_normal),
pricewholesale: parseFloat(product.price_wholesale),
pricewholesalelarge: parseFloat(product.price_wholesale_large),
pricesale: parseFloat(product.price_sale),
weight: parseFloat(product.weight),
volume: parseFloat(product.volume),
unittype: product.unit_type,
status: product.status,
datecreating: product.datecreating,
sp: product.sp,
guaranteeext: product.guarantee_ext,
used: product.used,
statusfull: product.status_full,
description: null,
url: null
});
items.push(productEntity);
if (dbProduct.product_id === productEntity.product_id){
log.info(" produt eqauls " + dbProduct.product_id + " =" + productEntity.product_id );
equals = true;
}
});
if (!equals) {
log.warn("Remove PRODUCT " + dbProduct);
Product.remove({ _id: dbProduct._id }, function (err) {
if (err) return updateDBCallback(err);
});
}
});
错误。我看到了类似的问题,有人说CALL_AND_RETRY_LAST Allocation failed - process out of memory ERROR
参数可以解决问题。但为什么会这样呢?
UPDATE1:
我想我在-max_old_space_size
中发现了问题,所以我的数据库中有5000个项目,'xmlfile'有5000个产品,所以我的项目数组增长到非常大的颜色