@chevre/domain
Version:
Chevre Domain Library for Node.js
81 lines (80 loc) • 2.13 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.modelName = exports.indexes = void 0;
exports.createSchema = createSchema;
const mongoose_1 = require("mongoose");
const writeConcern_1 = require("../writeConcern");
// import * as factory from '../../../factory';
const settings_1 = require("../../../settings");
const modelName = 'Telemetry';
exports.modelName = modelName;
const schemaDefinition = {
project: mongoose_1.SchemaTypes.Mixed,
result: mongoose_1.SchemaTypes.Mixed,
error: mongoose_1.SchemaTypes.Mixed,
object: mongoose_1.SchemaTypes.Mixed,
startDate: Date,
endDate: Date,
purpose: mongoose_1.SchemaTypes.Mixed
};
const schemaOptions = {
autoIndex: settings_1.MONGO_AUTO_INDEX,
autoCreate: false,
collection: 'telemetries',
id: true,
read: settings_1.MONGO_READ_PREFERENCE,
writeConcern: writeConcern_1.writeConcern,
strict: true,
strictQuery: false,
timestamps: false, // 2024-08-07~
versionKey: false, // 2024-08-07~
toJSON: {
getters: false,
virtuals: false,
minimize: false,
versionKey: false
},
toObject: {
getters: false,
virtuals: true,
minimize: false,
versionKey: false
}
};
/**
* 測定スキーマ
*/
let schema;
function createSchema() {
if (schema === undefined) {
schema = new mongoose_1.Schema(schemaDefinition, schemaOptions);
}
return schema;
}
const indexes = [
[
{ 'project.id': 1 },
{
name: 'searchByProjectId-v20220721'
}
],
[
{ 'object.measuredAt': 1 },
{
partialFilterExpression: {
'object.measuredAt': { $exists: true }
}
}
],
[
{ 'purpose.typeOf': 1, 'object.scope': 1, 'object.measuredAt': 1 },
{
partialFilterExpression: {
'purpose.typeOf': { $exists: true },
'object.scope': { $exists: true },
'object.measuredAt': { $exists: true }
}
}
]
];
exports.indexes = indexes;
;