private BsonDocument getCommandToEncode() { BsonDocument commandToEncode = command; if (!useOpMsg() && readPreference != null && !readPreference.equals(primary())) { commandToEncode = new BsonDocument("$query", command).append("$readPreference", readPreference.toDocument()); } return commandToEncode; }
private List<BsonElement> getExtraElements(final SessionContext sessionContext) { List<BsonElement> extraElements = new ArrayList<BsonElement>(); extraElements.add(new BsonElement("$db", new BsonString(new MongoNamespace(getCollectionName()).getDatabaseName()))); if (sessionContext.getClusterTime() != null) { extraElements.add(new BsonElement("$clusterTime", sessionContext.getClusterTime())); } if (sessionContext.hasSession() && responseExpected) { extraElements.add(new BsonElement("lsid", sessionContext.getSessionId())); } boolean firstMessageInTransaction = sessionContext.notifyMessageSent(); if (sessionContext.hasActiveTransaction()) { checkServerVersionForTransactionSupport(); extraElements.add(new BsonElement("txnNumber", new BsonInt64(sessionContext.getTransactionNumber()))); if (firstMessageInTransaction) { extraElements.add(new BsonElement("startTransaction", BsonBoolean.TRUE)); addReadConcernDocument(extraElements, sessionContext); } extraElements.add(new BsonElement("autocommit", BsonBoolean.FALSE)); } if (readPreference != null) { if (!readPreference.equals(primary())) { extraElements.add(new BsonElement("$readPreference", readPreference.toDocument())); } else if (isDirectConnectionToNonShardRouter()) { extraElements.add(new BsonElement("$readPreference", primaryPreferred().toDocument())); } } return extraElements; }
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 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; }
document.put("$readPreference", readPreference.toDocument());
private BsonDocument getCommandToEncode() { BsonDocument commandToEncode = command; if (!useOpMsg() && readPreference != null && !readPreference.equals(primary())) { commandToEncode = new BsonDocument("$query", command).append("$readPreference", readPreference.toDocument()); } return commandToEncode; }
private List<BsonElement> getExtraElements(final SessionContext sessionContext) { List<BsonElement> extraElements = new ArrayList<BsonElement>(); extraElements.add(new BsonElement("$db", new BsonString(new MongoNamespace(getCollectionName()).getDatabaseName()))); if (sessionContext.getClusterTime() != null) { extraElements.add(new BsonElement("$clusterTime", sessionContext.getClusterTime())); } if (sessionContext.hasSession() && responseExpected) { extraElements.add(new BsonElement("lsid", sessionContext.getSessionId())); } boolean firstMessageInTransaction = sessionContext.notifyMessageSent(); if (sessionContext.hasActiveTransaction()) { checkServerVersionForTransactionSupport(); extraElements.add(new BsonElement("txnNumber", new BsonInt64(sessionContext.getTransactionNumber()))); if (firstMessageInTransaction) { extraElements.add(new BsonElement("startTransaction", BsonBoolean.TRUE)); addReadConcernDocument(extraElements, sessionContext); } extraElements.add(new BsonElement("autocommit", BsonBoolean.FALSE)); } if (readPreference != null) { if (!readPreference.equals(primary())) { extraElements.add(new BsonElement("$readPreference", readPreference.toDocument())); } else if (isDirectConnectionToNonShardRouter()) { extraElements.add(new BsonElement("$readPreference", primaryPreferred().toDocument())); } } return extraElements; }
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 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; }
document.put("$readPreference", readPreference.toDocument());