cloudfunctions/SegmentPortraitPic/node_modules/@cloudbase/database/dist/commonjs/aggregate.js
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const index_1 = require("./index");
const bson_1 = require("bson");
const query_1 = require("./serializer/query");
const utils_1 = require("./utils/utils");
const type_1 = require("./utils/type");
class Aggregation {
constructor(db, collectionName) {
this._stages = [];
if (db && collectionName) {
this._db = db;
this._request = new index_1.Db.reqClass(this._db.config);
this._collectionName = collectionName;
}
}
async end() {
if (!this._collectionName || !this._db) {
throw new Error('Aggregation pipeline cannot send request');
}
const result = await this._request.send('database.aggregateDocuments', {
collectionName: this._collectionName,
stages: this._stages
});
if (result && result.data && result.data.list) {
return {
requestId: result.requestId,
data: result.data.list.map(bson_1.EJSON.parse)
};
}
return result;
}
unwrap() {
return this._stages;
}
done() {
return this._stages.map(({ stageKey, stageValue }) => {
return {
[stageKey]: JSON.parse(stageValue)
};
});
}
_pipe(stage, param) {
let transformParam = '';
if (type_1.getType(param) === 'object') {
transformParam = utils_1.stringifyByEJSON(param);
}
else {
transformParam = JSON.stringify(param);
}
this._stages.push({
stageKey: `$${stage}`,
stageValue: transformParam
});
return this;
}
addFields(param) {
return this._pipe('addFields', param);
}
bucket(param) {
后面还有 49 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
