node.js - 如何使用聚合或任何其他替代方法重写 mapReduce
问题描述
嗨,我在重写 mapReduce 时遇到了困难,因为它在 aws documentdb 中不受支持,任何解决方法都将不胜感激
var historyMap = function () {
var values = {
updateType: this.updateType.name + '(v.' + this.version + ')',
version: this.version,
revisionTimestamp: this.revisionTimestamp,
entityId: this.entityId
};
emit(this.entityId, values);
};
var scenarioMap = function () {
emit(this._id, {friendlyId: this.friendlyId});
};
var reduce = function (key, values) {
var updateTypes = '';
var friendlyId = '';
if (values[0].revisionTimestamp !== 'undefined') {
var revisionTimestamp = values[values.length - 1].revisionTimestamp;
}
values.forEach(function (value) {
if (value.updateType) {
updateTypes += value.updateType + ',';
}
if (value.friendlyId) {
friendlyId = value.friendlyId;
}
});
return {updateType: updateTypes, entityId: key, friendlyId: friendlyId, revisionTimestamp: revisionTimestamp};
};
HistoryReport.find({}).remove().exec().then(function () {
History.mapReduce({
map: historyMap,
reduce: reduce,
query: {type: 'Scenario', revisionTimestamp: {$gte: startDate, $lt: endDate}},
out: {'reduce': historyReportCollectionName},
sort: {revisionTimestamp: -1}
}, function () {
Scenario.mapReduce({
map: scenarioMap,
reduce: reduce,
out: {'reduce': historyReportCollectionName}
}, function () {
HistoryReport.find({'value.updateType': {'$exists': true}}).exec().then(function (data) {
populateSheet(data);
});
});
});
}).then(null, function (err) {
next(new errorHandler.error.ProcessingError(errorHandler.getErrorMessage(err)));
});
我收到以下错误 MongoError {name: "MongoError", message: "Feature not supported: mapreduce", ok: 0, errmsg: "Feature not supported: mapreduce", code: 303, ...}code: 303errmsg: "Feature不支持:mapreduce”消息:“功能不支持:mapreduce”名称:“MongoError”ok:0
解决方案
推荐阅读
- android - 将数据从firebase加载到android应用程序的问题
- python - 欧拉计划问题 #111。生成具有最多重复单个数字的 10 位素数
- matlab - Matlab中的线性不等式约束
- python - 找到两个选定单元格之间的最短路径(如果你不能走对角线)
- javascript - 如何从数组中切片一个项目
- firebase - Flutter firestore:使用“where”和 DISTINCT 文档字段查询文档
- android-studio - 如何在 Android Studio 中共享图像
- php - PHP 的 DatePeriod 类给出不准确的结果
- android - 使用自定义 ID 进行 Firebase 身份验证
- python - 为什么实例被销毁时 tkinter 不释放内存?