MongoDB 2.6兼容性改變 -- db.collection.aggregate()改變
創(chuàng)新互聯(lián)專注于沾益企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開發(fā),商城網(wǎng)站建設(shè)。沾益網(wǎng)站建設(shè)公司,為沾益等地區(qū)提供建站服務(wù)。全流程按需求定制網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
描述
db.collection.aggregate()方法在mongo shell中,默認(rèn)返回結(jié)果集的游標(biāo)。這個(gè)修改使得聚合管道返回任何大小的結(jié)果集,需要游標(biāo)遍歷來訪問結(jié)果集。例如:
var myCursor = db.orders.aggregate( [ { $group: { _id: "$cust_id", total: { $sum: "$price" } } } ] ); myCursor.forEach( function(x) { printjson (x); } );
之前的版本返回帶有字段result的單一文檔,它包含了結(jié)果集的一個(gè)數(shù)組,受限于BSON文檔大小限制。在MongoDB之前的版本訪問結(jié)果集需要訪問result字段,并遍歷數(shù)組。例如:
var returnedDoc = db.orders.aggregate( [ { $group: { _id: "$cust_id", total: { $sum: "$price" } } } ] ); var myArray = returnedDoc.result; // access the result field myArray.forEach( function(x) { printjson (x); } );
解決方案
修改腳本,當(dāng)前期待db.collection.aggregate()返回一個(gè)文檔帶result數(shù)組字段,替換為處理游標(biāo)。
可以參考
聚合增強(qiáng)
db.collection.aggregate()