Details
-
Bug
-
Resolution: Unresolved
-
Major - P3
-
None
-
None
-
None
-
3
Description
Hi all,
I'm using the following aggregation query generated from the atlas console to do a simple search query using MongoDB atlas
testingCollection.aggregate(Collections.singletonList((
|
Filters.eq("$search", |
Filters.eq("wildcard", |
Filters.and(
|
Filters.eq("path", "name"), |
Filters.eq("query", "dushan*"), |
Filters.eq("allowAnalyzedField", true) |
)
|
)
|
)))).first();
|

However, I'm getting the following error
Exception in thread "main" com.mongodb.MongoCommandException: Command failed with error 8 (UnknownError): 'Remote error from mongot :: caused by :: "path" is required (from "wildcard")' on ****. The full response is {"operationTime": {"$timestamp": {"t": 1603111830, "i": 3}}, "ok": 0.0, "errmsg": "Remote error from mongot :: caused by :: \"path\" is required (from \"wildcard\")", "code": 8, "codeName": "UnknownError", "$clusterTime": {"clusterTime": {"$timestamp": {"t": 1603111830, "i": 3}}, "signature": {"hash": ***}, "keyId": ***}}} |
at com.mongodb.internal.connection.ProtocolHelper.getCommandFailureException(ProtocolHelper.java:175) |
at com.mongodb.internal.connection.InternalStreamConnection.receiveCommandMessageResponse(InternalStreamConnection.java:302) |
at com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:258) |
at com.mongodb.internal.connection.UsageTrackingInternalConnection.sendAndReceive(UsageTrackingInternalConnection.java:99) |
at com.mongodb.internal.connection.DefaultConnectionPool$PooledConnection.sendAndReceive(DefaultConnectionPool.java:500) |
at com.mongodb.internal.connection.CommandProtocolImpl.execute(CommandProtocolImpl.java:71) |
at com.mongodb.internal.connection.DefaultServer$DefaultServerProtocolExecutor.execute(DefaultServer.java:224) |
at com.mongodb.internal.connection.DefaultServerConnection.executeProtocol(DefaultServerConnection.java:202) |
at com.mongodb.internal.connection.DefaultServerConnection.command(DefaultServerConnection.java:118) |
at com.mongodb.internal.connection.DefaultServerConnection.command(DefaultServerConnection.java:110) |
at com.mongodb.internal.operation.CommandOperationHelper.executeCommand(CommandOperationHelper.java:343) |
at com.mongodb.internal.operation.CommandOperationHelper.executeCommand(CommandOperationHelper.java:334) |
at com.mongodb.internal.operation.CommandOperationHelper.executeCommandWithConnection(CommandOperationHelper.java:220) |
at com.mongodb.internal.operation.CommandOperationHelper$5.call(CommandOperationHelper.java:206) |
at com.mongodb.internal.operation.OperationHelper.withReadConnectionSource(OperationHelper.java:462) |
at com.mongodb.internal.operation.CommandOperationHelper.executeCommand(CommandOperationHelper.java:203) |
at com.mongodb.internal.operation.AggregateOperationImpl.execute(AggregateOperationImpl.java:189) |
at com.mongodb.internal.operation.AggregateOperation.execute(AggregateOperation.java:296) |
at com.mongodb.internal.operation.AggregateOperation.execute(AggregateOperation.java:41) |
at com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.execute(MongoClientDelegate.java:190) |
at com.mongodb.client.internal.MongoIterableImpl.execute(MongoIterableImpl.java:135) |
at com.mongodb.client.internal.MongoIterableImpl.iterator(MongoIterableImpl.java:92) |
at com.mongodb.client.internal.MongoIterableImpl.first(MongoIterableImpl.java:103) |
at com.test.App.search(App.java:172) |
at com.test.App.main(App.java:63) |
|
|
Process finished with exit code 1 |
|
I assume that there is an issue with the java driver since when I did a quick debug I found that Filters.and is evaluated as $and, the query that is going to the backend is wrong.

if my approach is wrong could you please point me to the correct documentation or source in which I can achieve the above requirement?
Thank you,
Dushan