91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

解決mongodb內存不足的方法

發布時間:2020-07-02 15:04:11 來源:億速云 閱讀:1302 作者:清晨 欄目:編程語言

小編給大家分享一下解決mongodb內存不足的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討方法吧!

mongodb每一個文檔默認只有16M。聚合的結果是一個BSON文檔,當超過16M大小時,就會報內存不夠錯誤。

exceeded memory limit for $group.but didn't allow external sort.

可以采用打開使用磁盤來解決大小問題。例如

db.flowlog.aggregate([{$group:{_id:"$_id"}}], {allowDiskUse: true})

java代碼片段

AggregationOptions options = new AggregationOptions.Builder().allowDiskUse(true).build();

Aggregation agg = Aggregation.newAggregation().withOptions(options);

但是如果結果集超過了16M,那么依然會報錯誤。

采用一個下面的聚合方法

Aggregation agg = Aggregation.newAggregation(
                    Aggregation.group(field1
                            , field2
                            , field3)
                            .sum(field4).as("sampleField1")
                            .sum(field5).as("sampleField2"),
                    Aggregation.project(field4, field5),
                    new AggregationOperation() { 
                        @Override
                          public DBObject toDBObject(AggregationOperationContext context) {
                            return new BasicDBObject("$out", "test");
                        }
                    }).withOptions(options);
  mongo.aggregate(agg, sourceCollection, Test.class);

 如果要在聚合的時候增加一個常量,可采用以下形式

Aggregation agg = Aggregation.newAggregation(
                    Aggregation.group(
                            , OnofflineUserHistoryField.MAC
                            , StalogField.UTC_CODE)
                            .sum(OnofflineUserHistoryField.WIFI_UP_DOWN).as(OnofflineUserHistoryField.WIFI_UP_DOWN)
                            .sum(OnofflineUserHistoryField.ACTIVE_TIME).as(OnofflineUserHistoryField.ACTIVE_TIME),
                    Aggregation.project("mac","buildingId","utcCode",OnofflineUserHistoryField.ACTIVE_TIME, OnofflineUserHistoryField.WIFI_UP_DOWN).and(
                    new AggregationExpression() {
                        @Override
                        public DBObject toDbObject(AggregationOperationContext context) {
                            return new BasicDBObject(
                                    "$cond", new Object[]{
                                            new BasicDBObject(
                                                "$eq", new Object[]{ "$tenantId", 0}
                                            ),
                                            20161114,
                                            20161114
                                     });
                        }
                    }).as("day").andExclude("_id"),            或者
                      and(new AggregationExpression() {
             @Override
             public DBObject toDbObject(AggregationOperationContext context) { 

                         return new BasicDBObject("$add", new Object[] { 20141114 });
            }  

                    }).as("day").andExclude("_id"),
            new AggregationOperation() { 
                        @Override
                          public DBObject toDBObject(AggregationOperationContext context) {
                            return new BasicDBObject("$out", "dayStaInfoTmp");
                        }
                    }).withOptions(options);

看完了這篇文章,相信你對解決mongodb內存不足的方法有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

柏乡县| 河南省| 大丰市| 旬阳县| 呼玛县| 资溪县| 金溪县| 珲春市| 柘城县| 屏南县| 饶河县| 东港市| 华池县| 垦利县| 深泽县| 南部县| 盱眙县| 双流县| 塔城市| 上杭县| 古蔺县| 瓮安县| 喀喇| 金山区| 会同县| 易门县| 崇礼县| 德化县| 定陶县| 耒阳市| 渝中区| 教育| 华池县| 礼泉县| 拉萨市| 边坝县| 贡觉县| 宜章县| 清河县| 成都市| 永康市|