From ae5df8745535bbd1e9a98283587f7f2485cf41a2 Mon Sep 17 00:00:00 2001 From: Alexandr Velikiy <39257464+VargBurz@users.noreply.github.com> Date: Tue, 22 Oct 2019 17:26:30 +0300 Subject: [PATCH] Nedb and mongodb syntax #792 (#794) * add segment check in pattern detector * fix query syntax --- .../src/controllers/analytics_controller.ts | 4 ++-- server/src/services/data_layer/mongodb.ts | 19 ------------------- 2 files changed, 2 insertions(+), 21 deletions(-) diff --git a/server/src/controllers/analytics_controller.ts b/server/src/controllers/analytics_controller.ts index 6ffc1de..e279fa9 100644 --- a/server/src/controllers/analytics_controller.ts +++ b/server/src/controllers/analytics_controller.ts @@ -156,7 +156,7 @@ async function getQueryRange( let segments: Segment.Segment[]; switch(detectorType) { case AnalyticUnit.DetectorType.PATTERN: - segments = await Segment.findMany(analyticUnitId, { $or: { labeled: true, deleted: true } }); + segments = await Segment.findMany(analyticUnitId, { $or: [{ labeled: true }, { deleted: true }] }); if(segments.length === 0) { throw new Error('Need at least 1 labeled segment'); } @@ -170,7 +170,7 @@ async function getQueryRange( }; case AnalyticUnit.DetectorType.ANOMALY: - segments = await Segment.findMany(analyticUnitId, { $or: { labeled: true, deleted: true } }); + segments = await Segment.findMany(analyticUnitId, { $or: [{ labeled: true }, { deleted: true }] }); if(segments.length === 0) { const now = Date.now(); return { diff --git a/server/src/services/data_layer/mongodb.ts b/server/src/services/data_layer/mongodb.ts index fc83e5f..115a354 100644 --- a/server/src/services/data_layer/mongodb.ts +++ b/server/src/services/data_layer/mongodb.ts @@ -84,7 +84,6 @@ export class MongoDbQueryWrapper implements DbQueryWrapper { if(isEmptyArray(query)) { return []; } - query = convertQueryToMongoFormat(query); query = wrapIdsToMongoDbQuery(query); try { const docs = await collection.find(query).sort(sortQuery).toArray(); @@ -121,21 +120,3 @@ export class MongoDbQueryWrapper implements DbQueryWrapper { } } -function convertQueryToMongoFormat(query: any): object { - if(query.$or !== undefined && typeof query.$or === 'object') { - query.$or = convertQueryFieldToMongoFormat(query.$or); - } - if(query.$and !== undefined && typeof query.$or === 'object') { - query.$and = convertQueryFieldToMongoFormat(query.$and); - } - return query; -} - -function convertQueryFieldToMongoFormat(query: object): object[] { - let mongoQuery = []; - for(const key in query) { - const newObject = _.pick(query, key); - mongoQuery.push(newObject); - } - return mongoQuery; -}