/** * Equivalent to {@code QueryBuilder.put(key)}. Intended for compound query chains to be more readable, e.g. {@code * QueryBuilder.start("a").greaterThan(1).and("b").lessThan(3) } * * @param key MongoDB document key * @return {@code this} */ public QueryBuilder and(final String key) { return put(key); }
/** * Creates a new query with a document key * * @param key MongoDB document key * @return {@code this} */ public static QueryBuilder start(final String key) { return (new QueryBuilder()).put(key); }
/** * Equivalent to a $text operand. * * @param search the search terms to apply to the text index. * @param language the language to use. * @return {@code this} * @mongodb.server.release 2.6 */ public QueryBuilder text(final String search, @Nullable final String language) { if (_currentKey != null) { throw new QueryBuilderException("The text operand may only occur at the top-level of a query. It does" + " not apply to a specific element, but rather to a document as a whole."); } put(QueryOperators.TEXT); addOperand(QueryOperators.SEARCH, search); if (language != null) { addOperand(QueryOperators.LANGUAGE, language); } return this; }
/** * Equivalent to {@code QueryBuilder.put(key)}. Intended for compound query chains to be more readable, e.g. {@code * QueryBuilder.start("a").greaterThan(1).and("b").lessThan(3) } * * @param key MongoDB document key * @return {@code this} */ public QueryBuilder and(final String key) { return put(key); }
private QueryBuilder putMetadataField(String s) { qb = qb.put(MongoDocument.METADATA_KEY+"."+s); return qb; }
private QueryBuilder putContentField(String s) { qb = qb.put(MongoDocument.CONTENTS_KEY+"."+s); return qb; }
/** * Creates a new query with a document key * * @param key MongoDB document key * @return {@code this} */ public static QueryBuilder start(final String key) { return (new QueryBuilder()).put(key); }
private List<DBObject> buildAuthorIdConditions(Map<String, String> authorIds) { List<DBObject> conditions = new ArrayList<>(); for (Entry<String, String> idEntry : authorIds.entrySet()) { QueryBuilder ids = new QueryBuilder().put("m.contributors.ids"); QueryBuilder id = QueryBuilder.start(); id.put("scheme").is(idEntry.getKey()); id.put("value").is(idEntry.getValue()); ids.elemMatch(id.get()); conditions.add(ids.get()); } return conditions; }
private List<DBObject> buildHierarchyLevelConditions(Map<String, String> hierarchyLevels) { List<DBObject> conditions = new ArrayList<>(); for (Entry<String, String> hierarchyLevel : hierarchyLevels.entrySet()) { QueryBuilder structure = new QueryBuilder().put("m.structures"); QueryBuilder hierarchyLevelQuery = QueryBuilder.start(); hierarchyLevelQuery.put("hierarchy").is(hierarchyLevel.getKey()); hierarchyLevelQuery.put("current.level").is(hierarchyLevel.getValue()); structure.elemMatch(hierarchyLevelQuery.get()); conditions.add(structure.get()); } return conditions; }
private List<DBObject> buildSchemaIdConditions(Map<String, String> schemaIds) { List<DBObject> conditions = new ArrayList<>(); for (Entry<String, String> idEntry : schemaIds.entrySet()) { QueryBuilder ids = new QueryBuilder().put("m.ids"); QueryBuilder id = QueryBuilder.start(); id.put("scheme").is(idEntry.getKey()); id.put("value").is(idEntry.getValue()); ids.elemMatch(id.get()); conditions.add(ids.get()); } return conditions; }
public final void requireID(DocumentID<MongoType> o) { if(o==null) { return; } qb = qb.put(MongoDocument.MONGO_ID_KEY).is(o.getID()); id = o; }
@Override public final void requireAction(Action action) { qb = qb.put(MongoDocument.ACTION_KEY).is(action.toString()); this.action = action; }
private void restrictParts(List<String> objects, QueryBuilder partNameBuilder, String partKey) { if (!objects.isEmpty()) { partNameBuilder.put(BatchConstants.partCollectionKey + "." + partKey); BasicDBList dbList = new BasicDBList(); for (String object : objects) { dbList.add(object); } partNameBuilder.in(dbList); } }
private List<DBObject> buildDateIntervalConditions(Map<String, ReadableInterval> intervals) { List<DBObject> conditions = new ArrayList<>(); for (Entry<String, ReadableInterval> intervalEntry : intervals.entrySet()) { QueryBuilder ids = new QueryBuilder().put("m.dates"); QueryBuilder id = QueryBuilder.start(); id.put("type").is(intervalEntry.getKey()); QueryBuilder date = id.put("date"); date.greaterThanEquals(intervalEntry.getValue().getStart().toDate()); date.lessThanEquals(intervalEntry.getValue().getEnd().toDate()); ids.elemMatch(id.get()); conditions.add(ids.get()); } return conditions; }
private void addTypeToUntypedRecords() { DBObject q = new QueryBuilder().put("type").exists(false).get(); BasicDBObject o = new BasicDBObject("$set", new BasicDBObject("type", RecordType.changeSetExecution.name())); getMongeezCollection().update(q, o, false, true, WriteConcern.SAFE); }
private List<DBObject> buildRelationConditions(Set<RelationCriterion> criterions) { List<DBObject> conditions = new ArrayList<>(); for (RelationCriterion criterion : criterions) { QueryBuilder relations = new QueryBuilder().put("m.relations"); QueryBuilder relation = QueryBuilder.start(); if (criterion.getType() != null) { relation.put("type").is(criterion.getType()); } relation.put("target.scheme").is(criterion.getTargetSchema()); relation.put("target.value").is(criterion.getTargetId()); relations.elemMatch(relation.get()); conditions.add(relations.get()); } return conditions; }
private void addTypeToUntypedRecords() { DBObject q = new QueryBuilder().put("type").exists(false).get(); BasicDBObject o = new BasicDBObject("$set", new BasicDBObject("type", RecordType.changeSetExecution.name())); getMongeezCollection().update(q, o, false, true, WriteConcern.SAFE); }
private DBObject getQueryObject(final RecordId yId, String idKey) { QueryBuilder queryBuilder = QueryBuilder.start(idKey).is(yId.getUid()); if (yId.getVersion() != null) { queryBuilder.put(BatchConstants.version).is(Integer.valueOf(yId.getVersion())); } return queryBuilder.get(); }
/** * Equivalent to a $text operand. * * @param search the search terms to apply to the text index. * @param language the language to use. * @return {@code this} * @mongodb.server.release 2.6 */ public QueryBuilder text(final String search, @Nullable final String language) { if (_currentKey != null) { throw new QueryBuilderException("The text operand may only occur at the top-level of a query. It does" + " not apply to a specific element, but rather to a document as a whole."); } put(QueryOperators.TEXT); addOperand(QueryOperators.SEARCH, search); if (language != null) { addOperand(QueryOperators.LANGUAGE, language); } return this; }
private DBCursor query(String token) { DBObject query; DBObject queryKeys; DBObject orderBy; QueryBuilder queryBuilder = QueryBuilder.start().put("t.dataset").is("PSJD"); if (StringUtils.isNotBlank(token)) { queryBuilder.put("_id").lessThan(token); } query = queryBuilder.get(); queryKeys = QueryBuilder.start("p").elemMatch(QueryBuilder.start("n").is("metadata/BWmeta-2.1.0").get()).get(); orderBy = QueryBuilder.start("_id").is(-1).get(); return collection.find(query, queryKeys).sort(orderBy); }