Meteor MongoDB发布/子内存错误

时间:2017-10-23 12:16:57

标签: mongodb meteor

我正在使用Meteor进行数据可视化,为视图运行React和D3。今天决定使用更多文档填充MongoDB服务器(总共30个文档,每个文件净约50,000行)。在使用'仅'4个文档运行数据库之前没有问题,但现在我看到了

Exception while polling query {"collectionName":"Metrics","selector":{},"options":{"transform":null}}: MongoError: Query exceeded the maximum allowed memory usage of 40 MB. Please consider adding more filters to reduce the query response size.

这是我的collections.js文件,因为自动发布是关闭

if (Meteor.isServer) {    
    const remoteCollectionString = "notForHumanConsumption";
    database = new MongoInternals.RemoteCollectionDriver(remoteCollectionString);

    Meteor.publish('metricsDB', function() {
        return Metrics.find({})
    });
}

Metrics = new Mongo.Collection("Metrics", { _driver: database });

if (Meteor.isClient) {
    Meteor.startup(function() {
        Session.set('data_loaded', false); 
        console.log(Session.get('data_loaded'))
    }); 

    Meteor.subscribe('metricsDB', function(){
        // Set the reactive session as true to indicate that the data have been loaded
        Session.set('data_loaded', true); 
        console.log(Session.get('data_loaded'))
    });
}

在发布函数中添加任何类型的sort似乎至少让控制台记录true,但它很快就会这样做。终端显示没有错误,但我卡住了,没有得到任何数据到应用程序。

更新:决定从集合中删除10个条目,将其限制为20,现在集合 ~28MB 大,而不是 ~42MB < / strong> 30项。应用程序正在加载,虽然速度很慢。

数据结构看起来非常像这样:

{
    _id: BLAKSBFLUyiy79a6fs9Pjhadkh&SA86886Daksh, 
    DateQueried: dateString,
    DataSet1: [
        {
            ID,
            Name,
            Properties: [
                {
                    ID,
                    Name,
                    Nr,
                    Status: [0, 1, 2, 3], 
                    LocationData: { 
                        City,
                        CountryCode,
                        PostalCode,
                        Street,
                        StreetNumber
                    }
                }
            ]
        }
    ],
    DataSet2: [ 
        {
            ID,
            Name,
            Nr,
            Obj: {
                NrR,
                NrGS,
                LengthOfR
            }
        }
    ]
}

在每个文档中,DataSet1通常为9个项目。其中的属性最多可包含~1900(平均约500个)项目。 DataSet2通常约有49个项目。

0 个答案:

没有答案