我们需要将当前的Mongodb 3.4迁移到版本3.6,但是建议不起作用。 Mongo说,您需要以聚合方式发送cursor选项,我这样做的方式是:someCollection.aggregate(pipeline,{cursor:{}})。 我们的聚合使用mongodb 3.4可以很好地工作,但是当尝试在3.6中运行它们时,它们将无法工作。 该应用程序是使用Meteor框架1.2.0.2版
编写的与Mongodb相关的软件包为:
此示例的管道为:
let pipeline = [
{$match: {'contractor._id': contractorId, _id: {$ne: apptId}, start: {$lte: appt.start}}},
{$unwind: '$notes'},
{$sort: {start: -1, 'notes.creationDate': 1}}
];
以下是我尝试过的选项
#1:
var result = SalesAppointment.aggregate(pipeline, {cursor: {}});
return result;
#2:
var result = SalesAppointment.aggregate(pipeline, {cursor: {}});
return result.toArray();
#3:
var result = SalesAppointment.aggregate(pipeline, {cursor: {}});
return new Promise(function (resolve, reject) {
resolve(result.toArray());
});
#4:
var result = SalesAppointment.aggregate(pipeline, {cursor: {}});
return new Promise(function (resolve, reject) {
resolve(result);
});
#5:
let rawCol = SalesAppointment.rawCollection();
let aggregateQuery = Meteor.wrapAsync(rawCol.aggregate, rawCol);
return aggregateQuery(pipeline, {cursor: {}});
#6:
var result = SalesAppointment.rawCollection().aggregate(pipeline, {cursor: {}});
return result;
//结果1到5:所有选项都使应用程序挂起,它永远不会返回return语句,客户端也永远不会解决承诺。
//结果#6:它将没有数据的对象返回到前端,它仅具有以下属性:_visibleState,可读,域,_events,_maxListeners。 在后端,它具有以下方法:解释,获取,获取一个,每个,下一个,关闭,_read。
感谢您的帮助。