@Override public BsonArray create(final ConnectionDescription connectionDescription, final SessionContext sessionContext) { return new BsonArray(pipeline); } };
@Override protected void doWriteStartArray() { setContext(new Context(new BsonArray(), BsonContextType.ARRAY, getContext())); }
private BsonArray tagsListToBsonArray() { BsonArray bsonArray = new BsonArray(); for (TagSet tagSet : tagSetList) { bsonArray.add(toDocument(tagSet)); } return bsonArray; }
private static List<String> getCompressors(final BsonDocument isMasterResult) { List<String> compressorList = new ArrayList<String>(); for (BsonValue compressor : isMasterResult.getArray("compression", new BsonArray())) { compressorList.add(compressor.asString().getValue()); } return compressorList; }
@Override public BsonArray decode(final BsonReader reader, final DecoderContext decoderContext) { reader.readStartArray(); List<BsonValue> list = new ArrayList<BsonValue>(); while (reader.readBsonType() != BsonType.END_OF_DOCUMENT) { list.add(readValue(reader, decoderContext)); } reader.readEndArray(); return new BsonArray(list); }
@Override protected BsonDocument getAsWriteCommand(final ByteBufferBsonOutput bsonOutput, final int firstDocumentPosition) { return getBaseCommandDocument("insert") .append("documents", new BsonArray(ByteBufBsonDocument.createList(bsonOutput, firstDocumentPosition))); }
@Override public <TDocument> BsonDocument toBsonDocument(final Class<TDocument> documentClass, final CodecRegistry codecRegistry) { BsonDocument filterDocument = filter.toBsonDocument(documentClass, codecRegistry); if (filterDocument.size() == 1) { Map.Entry<String, BsonValue> entry = filterDocument.entrySet().iterator().next(); return createFilter(entry.getKey(), entry.getValue()); } else { BsonArray values = new BsonArray(); for (Map.Entry<String, BsonValue> docs : filterDocument.entrySet()) { values.add(new BsonDocument(docs.getKey(), docs.getValue())); } return createFilter("$and", values); } }
private void promoteRenderableToDollarForm(final BsonDocument document, final Map.Entry<String, BsonValue> clause) { BsonArray clauses = new BsonArray(); for (Map.Entry<String, BsonValue> queryElement : document.entrySet()) { clauses.add(new BsonDocument(queryElement.getKey(), queryElement.getValue())); } clauses.add(new BsonDocument(clause.getKey(), clause.getValue())); document.clear(); document.put("$and", clauses); }
@SuppressWarnings("unchecked") private List<BulkWriteUpsert> getUpsertedItems(final BsonDocument result) { BsonArray upsertedValue = result.getArray("upserted", new BsonArray()); List<BulkWriteUpsert> bulkWriteUpsertList = new ArrayList<BulkWriteUpsert>(); for (BsonValue upsertedItem : upsertedValue) { BsonDocument upsertedItemDocument = (BsonDocument) upsertedItem; bulkWriteUpsertList.add(new BulkWriteUpsert(upsertedItemDocument.getNumber("index").intValue(), upsertedItemDocument.get("_id"))); } return bulkWriteUpsertList; }
/** * Creates a projection to the given field name of a slice of the array value of that field. * * @param fieldName the field name * @param skip the number of elements to skip before applying the limit * @param limit the number of elements to project * @return the projection * @mongodb.driver.manual reference/operator/projection/slice Slice */ public static Bson slice(final String fieldName, final int skip, final int limit) { return new BsonDocument(fieldName, new BsonDocument("$slice", new BsonArray(asList(new BsonInt32(skip), new BsonInt32(limit))))); }
@Override public <TDocument> BsonDocument toBsonDocument(final Class<TDocument> documentClass, final CodecRegistry codecRegistry) { BsonDocument orRenderable = new BsonDocument(); BsonArray filtersArray = new BsonArray(); for (Bson filter : filters) { filtersArray.add(filter.toBsonDocument(documentClass, codecRegistry)); } orRenderable.put(operator.name, filtersArray); return orRenderable; }
@Override protected BsonDocument getAsWriteCommand(final ByteBufferBsonOutput bsonOutput, final int firstDocumentPosition) { List<ByteBufBsonDocument> documents = ByteBufBsonDocument.createList(bsonOutput, firstDocumentPosition); BsonDocument updateDocument = new BsonDocument("q", documents.get(0)).append("u", documents.get(1)); if (updateRequest.isMulti()) { updateDocument.append("multi", BsonBoolean.TRUE); } if (updateRequest.isUpsert()) { updateDocument.append("upsert", BsonBoolean.TRUE); } return getBaseCommandDocument("update").append("updates", new BsonArray(singletonList(updateDocument))); }
private BsonDocument getCommand(final ConnectionDescription description) { BsonDocument command = new BsonDocument("createIndexes", new BsonString(namespace.getCollectionName())); List<BsonDocument> values = new ArrayList<BsonDocument>(); for (IndexRequest request : requests) { values.add(getIndex(request)); } command.put("indexes", new BsonArray(values)); putIfNotZero(command, "maxTimeMS", maxTimeMS); appendWriteConcernToCommand(writeConcern, command, description); return command; }
@Override protected BsonDocument getAsWriteCommand(final ByteBufferBsonOutput bsonOutput, final int firstDocumentPosition) { BsonDocument deleteDocument = new BsonDocument("q", createOne(bsonOutput, firstDocumentPosition)) .append("limit", deleteRequest.isMulti() ? new BsonInt32(0) : new BsonInt32(1)); return getBaseCommandDocument("delete").append("deletes", new BsonArray(singletonList(deleteDocument))); }
private BsonDocument asKillCursorsCommandDocument() { return new BsonDocument("killCursors", new BsonString(namespace.getCollectionName())) .append("cursors", new BsonArray(singletonList(new BsonInt64(serverCursor.getId())))); } }
private BsonDocument asKillCursorsCommandDocument(final ServerCursor localCursor) { return new BsonDocument("killCursors", new BsonString(namespace.getCollectionName())) .append("cursors", new BsonArray(singletonList(new BsonInt64(localCursor.getId())))); }
private static Bson createNearFilterDocument(final String fieldName, final double x, final double y, @Nullable final Double maxDistance, @Nullable final Double minDistance, final String operator) { BsonDocument nearFilter = new BsonDocument(operator, new BsonArray(Arrays.asList(new BsonDouble(x), new BsonDouble(y)))); if (maxDistance != null) { nearFilter.append("$maxDistance", new BsonDouble(maxDistance)); } if (minDistance != null) { nearFilter.append("$minDistance", new BsonDouble(minDistance)); } return new BsonDocument(fieldName, nearFilter); }
private BsonDocument asCommandResponseDocument() { BsonArray cursorIdArray = new BsonArray(); for (long cursorId : cursors) { cursorIdArray.add(new BsonInt64(cursorId)); } return new BsonDocument("ok", new BsonDouble(1)) .append("cursorsUnknown", cursorIdArray); }
private BsonDocument getCommand(final ConnectionDescription description) { BsonDocument commandDocument = new BsonDocument("create", new BsonString(viewName)) .append("viewOn", new BsonString(viewOn)) .append("pipeline", new BsonArray(pipeline)); if (collation != null) { commandDocument.put("collation", collation.asDocument()); } appendWriteConcernToCommand(writeConcern, commandDocument, description); return commandDocument; }
private BsonDocument asCommandDocument() { BsonArray array = new BsonArray(); for (long cursor : cursors) { array.add(new BsonInt64(cursor)); } return new BsonDocument(COMMAND_NAME, namespace == null ? new BsonInt32(1) : new BsonString(namespace.getCollectionName())) .append("cursors", array); }