use of org.bson.BsonDocument in project mongo-java-driver by mongodb.
the class InternalStreamConnectionInitializer method initializeConnectionDescription.
private ConnectionDescription initializeConnectionDescription(final InternalConnection internalConnection) {
BsonDocument isMasterResult = executeCommand("admin", createIsMasterCommand(), internalConnection);
BsonDocument buildInfoResult = executeCommand("admin", new BsonDocument("buildinfo", new BsonInt32(1)), internalConnection);
return createConnectionDescription(internalConnection.getDescription().getConnectionId(), isMasterResult, buildInfoResult);
}
use of org.bson.BsonDocument in project mongo-java-driver by mongodb.
the class InternalStreamConnectionInitializer method initializeConnectionDescriptionAsync.
private void initializeConnectionDescriptionAsync(final InternalConnection internalConnection, final SingleResultCallback<ConnectionDescription> callback) {
executeCommandAsync("admin", createIsMasterCommand(), internalConnection, new SingleResultCallback<BsonDocument>() {
@Override
public void onResult(final BsonDocument isMasterResult, final Throwable t) {
if (t != null) {
callback.onResult(null, t);
} else {
executeCommandAsync("admin", new BsonDocument("buildinfo", new BsonInt32(1)), internalConnection, new SingleResultCallback<BsonDocument>() {
@Override
public void onResult(final BsonDocument buildInfoResult, final Throwable t) {
if (t != null) {
callback.onResult(null, t);
} else {
ConnectionId connectionId = internalConnection.getDescription().getConnectionId();
callback.onResult(createConnectionDescription(connectionId, isMasterResult, buildInfoResult), null);
}
}
});
}
}
});
}
use of org.bson.BsonDocument in project mongo-java-driver by mongodb.
the class ListCollectionsOperation method projectFromFullNamespaceToCollectionName.
private List<T> projectFromFullNamespaceToCollectionName(final List<BsonDocument> unstripped) {
if (unstripped == null) {
return null;
}
List<T> stripped = new ArrayList<T>(unstripped.size());
String prefix = databaseName + ".";
for (BsonDocument cur : unstripped) {
String name = cur.getString("name").getValue();
String collectionName = name.substring(prefix.length());
cur.put("name", new BsonString(collectionName));
stripped.add(decoder.decode(new BsonDocumentReader(cur), DecoderContext.builder().build()));
}
return stripped;
}
use of org.bson.BsonDocument in project mongo-java-driver by mongodb.
the class ListCollectionsOperation method asQueryDocument.
private BsonDocument asQueryDocument(final ConnectionDescription connectionDescription, final ReadPreference readPreference) {
BsonDocument document = new BsonDocument();
BsonDocument transformedFilter = null;
if (filter != null) {
if (filter.containsKey("name")) {
if (!filter.isString("name")) {
throw new IllegalArgumentException("When filtering collections on MongoDB versions < 3.0 the name field " + "must be a string");
}
transformedFilter = new BsonDocument();
transformedFilter.putAll(filter);
transformedFilter.put("name", new BsonString(format("%s.%s", databaseName, filter.getString("name").getValue())));
} else {
transformedFilter = filter;
}
}
BsonDocument indexExcludingRegex = new BsonDocument("name", new BsonRegularExpression("^[^$]*$"));
BsonDocument query = transformedFilter == null ? indexExcludingRegex : new BsonDocument("$and", new BsonArray(asList(indexExcludingRegex, transformedFilter)));
document.put("$query", query);
if (connectionDescription.getServerType() == SHARD_ROUTER && !readPreference.equals(primary())) {
document.put("$readPreference", readPreference.toDocument());
}
if (maxTimeMS > 0) {
document.put("$maxTimeMS", new BsonInt64(maxTimeMS));
}
return document;
}
use of org.bson.BsonDocument in project mongo-java-driver by mongodb.
the class MapReduceWithInlineResultsOperation method getCommand.
private BsonDocument getCommand() {
BsonDocument commandDocument = new BsonDocument("mapreduce", new BsonString(namespace.getCollectionName())).append("map", getMapFunction()).append("reduce", getReduceFunction()).append("out", new BsonDocument("inline", new BsonInt32(1))).append("query", asValueOrNull(getFilter())).append("sort", asValueOrNull(getSort())).append("finalize", asValueOrNull(getFinalizeFunction())).append("scope", asValueOrNull(getScope())).append("verbose", BsonBoolean.valueOf(isVerbose()));
putIfNotZero(commandDocument, "limit", getLimit());
putIfNotZero(commandDocument, "maxTimeMS", getMaxTime(MILLISECONDS));
putIfTrue(commandDocument, "jsMode", isJsMode());
if (!readConcern.isServerDefault()) {
commandDocument.put("readConcern", readConcern.asDocument());
}
if (collation != null) {
commandDocument.put("collation", collation.asDocument());
}
return commandDocument;
}
Aggregations