/** * Get the full name of a collection, with the database name as a prefix. * * @return the name of a collection * @mongodb.driver.manual reference/glossary/#term-namespace Namespace */ public String getFullName() { return getNamespace().getFullName(); }
CommandMessage(final MongoNamespace namespace, final BsonDocument command, final FieldNameValidator commandFieldNameValidator, final ReadPreference readPreference, final MessageSettings settings, final boolean responseExpected, final SplittablePayload payload, final FieldNameValidator payloadFieldNameValidator, final ClusterConnectionMode clusterConnectionMode) { super(namespace.getFullName(), getOpCode(settings), settings); this.namespace = namespace; this.command = command; this.commandFieldNameValidator = commandFieldNameValidator; this.readPreference = readPreference; this.responseExpected = responseExpected; this.payload = payload; this.payloadFieldNameValidator = payloadFieldNameValidator; this.clusterConnectionMode = clusterConnectionMode; }
/** {@inheritDoc} */ @Override public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable { final String methodName = method.getName(); if (methodName.startsWith("with") && method.getReturnType() != null && MongoCollection.class.isAssignableFrom(method.getReturnType())) { // inutile de monitorer withDocumentClass(...), etc // mais il faut monitorer la nouvelle instance de MongoCollection en retour MongoCollection<?> result = (MongoCollection<?>) method.invoke(collection, args); final MongoNamespace namespace = collection.getNamespace(); final String name; if (namespace != null) { name = namespace.getFullName(); } else { name = methodName; } result = createCollectionProxy(result, name); return result; } else if (methodName.startsWith("get")) { // inutile de monitorer getDocumentClass(), getNamespace(), etc return method.invoke(collection, args); } final String requestName = collectionName + '.' + method.getName(); return doInvoke(collection, method, args, requestName); } }
@Override protected RequestMessage createRequestMessage(final MessageSettings settings) { return new DeleteMessage(getNamespace().getFullName(), deleteRequest, settings); }
@Override protected RequestMessage createRequestMessage(final MessageSettings settings) { return new UpdateMessage(getNamespace().getFullName(), updateRequest, settings); }
protected RequestMessage createRequestMessage(final MessageSettings settings) { return new InsertMessage(getNamespace().getFullName(), insertRequest, settings); }
@Override public Publisher<Document> doInCollection(MongoCollection<Document> collection) throws MongoException, DataAccessException { FindPublisher<Document> publisher = collection.find(query, Document.class); if (LOGGER.isDebugEnabled()) { LOGGER.debug("findOne using query: {} fields: {} in db.collection: {}", serializeToJsonSafely(query), serializeToJsonSafely(fields.orElseGet(Document::new)), collection.getNamespace().getFullName()); } if (fields.isPresent()) { publisher = publisher.projection(fields.get()); } publisher = collation.map(Collation::toMongoCollation).map(publisher::collation).orElse(publisher); return publisher.limit(1).first(); } }
public Document doInCollection(MongoCollection<Document> collection) throws MongoException, DataAccessException { FindIterable<Document> iterable = collection.find(query, Document.class); if (LOGGER.isDebugEnabled()) { LOGGER.debug("findOne using query: {} fields: {} in db.collection: {}", serializeToJsonSafely(query), serializeToJsonSafely(fields.orElseGet(Document::new)), collection.getNamespace() != null ? collection.getNamespace().getFullName() : "n/a"); } if (fields.isPresent()) { iterable = iterable.projection(fields.get()); } return iterable.first(); } }
/** {@inheritDoc} */ @Override public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable { Object result = method.invoke(database, args); if (result instanceof MongoCollection && args != null && args.length > 0 && args[0] instanceof String) { final MongoCollection<?> collection = (MongoCollection<?>) result; final MongoNamespace namespace = collection.getNamespace(); final String name; if (namespace != null) { name = namespace.getFullName(); } else { name = (String) args[0]; } result = createCollectionProxy(collection, name); } else if (result instanceof MongoDatabase) { // il faut monitorer la nouvelle instance de MongoDatabase en retour result = createDatabaseProxy((MongoDatabase) result); } return result; } }
private BsonDocument getCommand(final ConnectionDescription description) { BsonDocument commandDocument = new BsonDocument("renameCollection", new BsonString(originalNamespace.getFullName())) .append("to", new BsonString(newNamespace.getFullName())) .append("dropTarget", BsonBoolean.valueOf(dropTarget)); appendWriteConcernToCommand(writeConcern, commandDocument, description); return commandDocument; } }
private BsonDocument asQueryDocument(final ConnectionDescription connectionDescription, final ReadPreference readPreference) { BsonDocument document = new BsonDocument("$query", new BsonDocument("ns", new BsonString(namespace.getFullName()))); if (maxTimeMS > 0) { document.put("$maxTimeMS", new BsonInt64(maxTimeMS)); } if (connectionDescription.getServerType() == SHARD_ROUTER && !readPreference.equals(primary())) { document.put("$readPreference", readPreference.toDocument()); } return document; }
private BsonDocument asGetMoreCommandResponseDocument(final QueryResult<T> queryResult, final ResponseBuffers responseBuffers) { List<ByteBufBsonDocument> rawResultDocuments = Collections.emptyList(); if (responseBuffers.getReplyHeader().getNumberReturned() != 0) { responseBuffers.reset(); rawResultDocuments = ByteBufBsonDocument.createList(responseBuffers); } BsonDocument cursorDocument = new BsonDocument("id", queryResult.getCursor() == null ? new BsonInt64(0) : new BsonInt64(queryResult.getCursor().getId())) .append("ns", new BsonString(namespace.getFullName())) .append("nextBatch", new BsonArray(rawResultDocuments)); return new BsonDocument("cursor", cursorDocument) .append("ok", new BsonDouble(1)); }
@Override public void executeAsync(final InternalConnection connection, final SingleResultCallback<QueryResult<T>> callback) { long startTimeNanos = System.nanoTime(); GetMoreMessage message = new GetMoreMessage(namespace.getFullName(), cursorId, numberToReturn); boolean sentStartedEvent = false; try {
private BsonDocument asFindCommandResponseDocument(final ResponseBuffers responseBuffers, final QueryResult<T> queryResult, final boolean isExplain) { List<ByteBufBsonDocument> rawResultDocuments = Collections.emptyList(); if (responseBuffers.getReplyHeader().getNumberReturned() > 0) { responseBuffers.reset(); rawResultDocuments = ByteBufBsonDocument.createList(responseBuffers); } if (isExplain) { BsonDocument explainCommandResponseDocument = new BsonDocument("ok", new BsonDouble(1)); explainCommandResponseDocument.putAll(rawResultDocuments.get(0)); return explainCommandResponseDocument; } else { BsonDocument cursorDocument = new BsonDocument("id", queryResult.getCursor() == null ? new BsonInt64(0) : new BsonInt64(queryResult.getCursor().getId())) .append("ns", new BsonString(namespace.getFullName())) .append("firstBatch", new BsonArray(rawResultDocuments)); return new BsonDocument("cursor", cursorDocument) .append("ok", new BsonDouble(1)); } }
private QueryMessage createQueryMessage(final ConnectionDescription connectionDescription) { return (QueryMessage) new QueryMessage(namespace.getFullName(), skip, getNumberToReturn(), queryDocument, fields, getMessageSettings(connectionDescription)) .tailableCursor(isTailableCursor()) .slaveOk(isSlaveOk()) .oplogReplay(isOplogReplay()) .noCursorTimeout(isNoCursorTimeout()) .awaitData(isAwaitData()) .partial(isPartial()); }
GetMoreMessage message = new GetMoreMessage(namespace.getFullName(), cursorId, numberToReturn); QueryResult<T> result = null; try {
@Override public Publisher<Document> doInCollection(MongoCollection<Document> collection) throws MongoException, DataAccessException { FindPublisher<Document> publisher = collection.find(query, Document.class); if (LOGGER.isDebugEnabled()) { LOGGER.debug("findOne using query: {} fields: {} in db.collection: {}", serializeToJsonSafely(query), serializeToJsonSafely(fields.orElseGet(Document::new)), collection.getNamespace().getFullName()); } if (fields.isPresent()) { publisher = publisher.projection(fields.get()); } publisher = collation.map(Collation::toMongoCollation).map(publisher::collation).orElse(publisher); return publisher.limit(1).first(); } }
public Document doInCollection(MongoCollection<Document> collection) throws MongoException, DataAccessException { FindIterable<Document> iterable = collection.find(query, Document.class); if (LOGGER.isDebugEnabled()) { LOGGER.debug("findOne using query: {} fields: {} in db.collection: {}", serializeToJsonSafely(query), serializeToJsonSafely(fields.orElseGet(Document::new)), collection.getNamespace() != null ? collection.getNamespace().getFullName() : "n/a"); } if (fields.isPresent()) { iterable = iterable.projection(fields.get()); } return iterable.first(); } }
} else { bsonOutput.writeInt32(getOpQueryFlagBits()); bsonOutput.writeCString(namespace.getFullName()); bsonOutput.writeInt32(0); bsonOutput.writeInt32(-1);
index.append("key", request.getKeys()); index.append("name", new BsonString(request.getName() != null ? request.getName() : generateIndexName(request.getKeys()))); index.append("ns", new BsonString(namespace.getFullName())); if (request.isBackground()) { index.append("background", BsonBoolean.TRUE);