private DBQuery.Query getFindAnyStreamQuery(List<String> streamIds) { final List<DBQuery.Query> streamQueries = streamIds.stream() .map(streamId -> DBQuery.is(AlertImpl.FIELD_STREAM_ID, streamId)) .collect(Collectors.toList()); return DBQuery.or(streamQueries.toArray(new DBQuery.Query[streamQueries.size()])); }
public DBQuery.Query toDBQuery() { if (queryMap.isEmpty()) { return DBQuery.empty(); } final List<DBQuery.Query> dbQueries = new ArrayList<>(); for (Map.Entry<String, Collection<SearchQueryParser.FieldValue>> entry : queryMap.asMap().entrySet()) { final List<DBQuery.Query> queries = new ArrayList<>(); final List<SearchQueryParser.FieldValue> include = selectValues(entry.getValue(), value -> !value.isNegate()); final List<SearchQueryParser.FieldValue> exclude = selectValues(entry.getValue(), SearchQueryParser.FieldValue::isNegate); if (!include.isEmpty()) { queries.add(DBQuery.or(toQuery(entry.getKey(), include))); } if (!exclude.isEmpty()) { queries.add(DBQuery.nor(toQuery(entry.getKey(), exclude))); } dbQueries.add(DBQuery.and(queries.toArray(new DBQuery.Query[0]))); } return DBQuery.and(dbQueries.toArray(new DBQuery.Query[0])); }
/** * {@inheritDoc} */ @Override public List<IndexSetConfig> findPaginated(Set<String> indexSetIds, int limit, int skip) { final List<DBQuery.Query> idQuery = indexSetIds.stream() .map(id -> DBQuery.is("_id", id)) .collect(Collectors.toList()); final DBQuery.Query query = DBQuery.or(idQuery.toArray(new DBQuery.Query[0])); return ImmutableList.copyOf(collection.find(query) .sort(DBSort.asc("title")) .skip(skip) .limit(limit) .toArray()); }
@Override public List<Decorator> findForGlobal() { return toInterfaceList(coll.find(DBQuery.or( DBQuery.notExists(DecoratorImpl.FIELD_STREAM), DBQuery.is(DecoratorImpl.FIELD_STREAM, Optional.empty()) )).toArray()); }
@Override public SortedSet<IndexRange> find(DateTime begin, DateTime end) { final DBQuery.Query query = DBQuery.or( DBQuery.and( DBQuery.notExists("start"), // "start" has been used by the old index ranges in MongoDB DBQuery.lessThanEquals(IndexRange.FIELD_BEGIN, end.getMillis()), DBQuery.greaterThanEquals(IndexRange.FIELD_END, begin.getMillis()) ), DBQuery.and( DBQuery.notExists("start"), // "start" has been used by the old index ranges in MongoDB DBQuery.lessThanEquals(IndexRange.FIELD_BEGIN, 0L), DBQuery.greaterThanEquals(IndexRange.FIELD_END, 0L) ) ); try (DBCursor<MongoIndexRange> indexRanges = collection.find(query)) { return ImmutableSortedSet.copyOf(IndexRange.COMPARATOR, (Iterator<? extends IndexRange>) indexRanges); } }
private DBQuery.Query getFindByStateQuery(AlertState state) { if (state == AlertState.RESOLVED) { /* Resolved alerts: * - Not interval (legacy) * - Interval alerts with non-null resolved_at field */ return DBQuery.or( DBQuery.notEquals(AlertImpl.FIELD_IS_INTERVAL, true), DBQuery.notEquals(AlertImpl.FIELD_RESOLVED_AT, null) ); } if (state == AlertState.UNRESOLVED) { /* Unresolved alerts: * - Interval alerts with null resolved_at field */ return DBQuery.and( DBQuery.is(AlertImpl.FIELD_IS_INTERVAL, true), DBQuery.is(AlertImpl.FIELD_RESOLVED_AT, null) ); } return DBQuery.empty(); } }
private DBQuery.Query getFindAnyStreamQuery(List<String> streamIds) { final List<DBQuery.Query> streamQueries = streamIds.stream() .map(streamId -> DBQuery.is(AlertImpl.FIELD_STREAM_ID, streamId)) .collect(Collectors.toList()); return DBQuery.or(streamQueries.toArray(new DBQuery.Query[streamQueries.size()])); }
public DBQuery.Query toDBQuery() { if (queryMap.isEmpty()) { return DBQuery.empty(); } final List<DBQuery.Query> dbQueries = new ArrayList<>(); for (Map.Entry<String, Collection<SearchQueryParser.FieldValue>> entry : queryMap.asMap().entrySet()) { final List<DBQuery.Query> queries = new ArrayList<>(); final List<SearchQueryParser.FieldValue> include = selectValues(entry.getValue(), value -> !value.isNegate()); final List<SearchQueryParser.FieldValue> exclude = selectValues(entry.getValue(), SearchQueryParser.FieldValue::isNegate); if (!include.isEmpty()) { queries.add(DBQuery.or(toQuery(entry.getKey(), include))); } if (!exclude.isEmpty()) { queries.add(DBQuery.nor(toQuery(entry.getKey(), exclude))); } dbQueries.add(DBQuery.and(queries.toArray(new DBQuery.Query[0]))); } return DBQuery.and(dbQueries.toArray(new DBQuery.Query[0])); }
/** * {@inheritDoc} */ @Override public List<IndexSetConfig> findPaginated(Set<String> indexSetIds, int limit, int skip) { final List<DBQuery.Query> idQuery = indexSetIds.stream() .map(id -> DBQuery.is("_id", id)) .collect(Collectors.toList()); final DBQuery.Query query = DBQuery.or(idQuery.toArray(new DBQuery.Query[0])); return ImmutableList.copyOf(collection.find(query) .sort(DBSort.asc("title")) .skip(skip) .limit(limit) .toArray()); }
@Override public List<Decorator> findForGlobal() { return toInterfaceList(coll.find(DBQuery.or( DBQuery.notExists(DecoratorImpl.FIELD_STREAM), DBQuery.is(DecoratorImpl.FIELD_STREAM, Optional.empty()) )).toArray()); }
@Override public SortedSet<IndexRange> find(DateTime begin, DateTime end) { final DBCursor<MongoIndexRange> indexRanges = collection.find( DBQuery.or( DBQuery.and( DBQuery.notExists("start"), // "start" has been used by the old index ranges in MongoDB DBQuery.lessThanEquals(IndexRange.FIELD_BEGIN, end.getMillis()), DBQuery.greaterThanEquals(IndexRange.FIELD_END, begin.getMillis()) ), DBQuery.and( DBQuery.notExists("start"), // "start" has been used by the old index ranges in MongoDB DBQuery.lessThanEquals(IndexRange.FIELD_BEGIN, 0L), DBQuery.greaterThanEquals(IndexRange.FIELD_END, 0L) ) ) ); return ImmutableSortedSet.copyOf(IndexRange.COMPARATOR, (Iterator<? extends IndexRange>) indexRanges); }
private DBQuery.Query getFindByStateQuery(AlertState state) { if (state == AlertState.RESOLVED) { /* Resolved alerts: * - Not interval (legacy) * - Interval alerts with non-null resolved_at field */ return DBQuery.or( DBQuery.notEquals(AlertImpl.FIELD_IS_INTERVAL, true), DBQuery.notEquals(AlertImpl.FIELD_RESOLVED_AT, null) ); } if (state == AlertState.UNRESOLVED) { /* Unresolved alerts: * - Interval alerts with null resolved_at field */ return DBQuery.and( DBQuery.is(AlertImpl.FIELD_IS_INTERVAL, true), DBQuery.is(AlertImpl.FIELD_RESOLVED_AT, null) ); } return DBQuery.empty(); } }