use of org.bson.BsonValue in project mongo-java-driver by mongodb.
the class DBCollection method aggregate.
@SuppressWarnings("deprecation")
private Cursor aggregate(final List<? extends DBObject> pipeline, final AggregationOptions options, final ReadPreference readPreference, final boolean returnCursorForOutCollection) {
if (options == null) {
throw new IllegalArgumentException("options can not be null");
}
List<BsonDocument> stages = preparePipeline(pipeline);
BsonValue outCollection = stages.get(stages.size() - 1).get("$out");
if (outCollection != null) {
AggregateToCollectionOperation operation = new AggregateToCollectionOperation(getNamespace(), stages, getWriteConcern()).maxTime(options.getMaxTime(MILLISECONDS), MILLISECONDS).allowDiskUse(options.getAllowDiskUse()).bypassDocumentValidation(options.getBypassDocumentValidation()).collation(options.getCollation());
try {
executor.execute(operation);
if (returnCursorForOutCollection) {
return new DBCursor(database.getCollection(outCollection.asString().getValue()), new BasicDBObject(), new DBCollectionFindOptions().readPreference(primary()).collation(options.getCollation()));
} else {
return null;
}
} catch (MongoWriteConcernException e) {
throw createWriteConcernException(e);
}
} else {
AggregateOperation<DBObject> operation = new AggregateOperation<DBObject>(getNamespace(), stages, getDefaultDBObjectCodec()).readConcern(getReadConcern()).maxTime(options.getMaxTime(MILLISECONDS), MILLISECONDS).allowDiskUse(options.getAllowDiskUse()).batchSize(options.getBatchSize()).useCursor(options.getOutputMode() == com.mongodb.AggregationOptions.OutputMode.CURSOR).collation(options.getCollation());
BatchCursor<DBObject> cursor = executor.execute(operation, readPreference);
return new MongoCursorAdapter(new MongoBatchCursorAdapter<DBObject>(cursor));
}
}
use of org.bson.BsonValue in project mongo-java-driver by mongodb.
the class ServerDiscoveryAndMonitoringTest method shouldPassAllOutcomes.
@Test
public void shouldPassAllOutcomes() {
for (BsonValue phase : getDefinition().getArray("phases")) {
for (BsonValue response : phase.asDocument().getArray("responses")) {
applyResponse(response.asArray());
}
BsonDocument outcome = phase.asDocument().getDocument("outcome");
assertTopologyType(outcome.getString("topologyType").getValue());
assertServers(outcome.getDocument("servers"));
}
}
use of org.bson.BsonValue in project mongo-java-driver by mongodb.
the class ServerSelectionRttTest method shouldPassAllOutcomes.
@Test
public void shouldPassAllOutcomes() {
ExponentiallyWeightedMovingAverage subject = new ExponentiallyWeightedMovingAverage(0.2);
BsonValue current = definition.get("avg_rtt_ms");
if (current.isNumber()) {
subject.addSample(current.asNumber().longValue());
}
subject.addSample(definition.getNumber("new_rtt_ms").longValue());
long expected = definition.getNumber("new_avg_rtt").asNumber().longValue();
assertEquals(subject.getAverage(), expected);
}
use of org.bson.BsonValue in project mongo-java-driver by mongodb.
the class CrudTest method setUp.
@Before
public void setUp() {
super.setUp();
List<BsonDocument> documents = new ArrayList<BsonDocument>();
for (BsonValue document : data) {
documents.add(document.asDocument());
}
getCollectionHelper().insertDocuments(documents);
collection = database.getCollection(getClass().getName(), BsonDocument.class);
helper = new JsonPoweredCrudTestHelper(description, collection);
}
use of org.bson.BsonValue in project mongo-java-driver by mongodb.
the class CommandMonitoringTest method getExpectedEvents.
private List<CommandEvent> getExpectedEvents(final BsonArray expectedEventDocuments) {
List<CommandEvent> expectedEvents = new ArrayList<CommandEvent>(expectedEventDocuments.size());
for (Iterator<BsonValue> iterator = expectedEventDocuments.iterator(); iterator.hasNext(); ) {
BsonDocument curExpectedEventDocument = iterator.next().asDocument();
String eventType = curExpectedEventDocument.keySet().iterator().next();
BsonDocument eventDescriptionDocument = curExpectedEventDocument.getDocument(eventType);
CommandEvent commandEvent;
if (eventType.equals("command_started_event")) {
commandEvent = new CommandStartedEvent(1, null, databaseName, eventDescriptionDocument.getString("command_name").getValue(), eventDescriptionDocument.getDocument("command"));
} else if (eventType.equals("command_succeeded_event")) {
BsonDocument replyDocument = eventDescriptionDocument.get("reply").asDocument();
commandEvent = new CommandSucceededEvent(1, null, eventDescriptionDocument.getString("command_name").getValue(), replyDocument, 1);
} else if (eventType.equals("command_failed_event")) {
commandEvent = new CommandFailedEvent(1, null, eventDescriptionDocument.getString("command_name").getValue(), 1, null);
} else {
throw new UnsupportedOperationException("Unsupported command event type: " + eventType);
}
expectedEvents.add(commandEvent);
}
return expectedEvents;
}
Aggregations