Get the App
SLTechnology News&Howtos  ›  Database  › 

MongoDB 2.6 compatibility change-db.collection.aggregate () change

Shulou Source: shulou.com Published: 2022-06-01 09:24:57 09月18日 Update

MongoDB 2.6 compatibility changes-- db.collection.aggregate() changes

described

db.collection.aggregate() method In the mongo shell, by default returns a cursor of the result set. This modification causes the aggregate pipeline to return any size result set, requiring cursor traversal to access the result set. For example:

var myCursor = db.orders.aggregate( [{$group: {_id: "$cust_id",total: { $sum: "$price" }}}] );myCursor.forEach( function(x) { printjson (x); } );

Previous versions returned a single document with the field result, which contained an array of result sets, subject to the BSON document size limit. Prior to MongoDB, accessing the result set required accessing the result field and traversing the array. For example:

var returnedDoc = db.orders.aggregate( [{$group: {_id: "$cust_id",total: { $sum: "$price" }}}] );var myArray = returnedDoc.result; // access the result fieldmyArray.forEach( function(x) { printjson (x); } );

solutions

Modify the script to expect db.collection.aggregate() to return a document with result array fields instead of processing cursors.

can refer to

converged enhanced

db.collection.aggregate()

Tags: Results fields arrays documents cursors size version compatibility schemes methods pipes scripts solutions references processing restrictions Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno MariaDB Apple Xiaomi NVidia Shulou Information