Uploaded image for project: 'Java Driver'
  1. Java Driver
  2. JAVA-2435

Abnormal query results!

    • Type: Icon: Task Task
    • Resolution: Works as Designed
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 3.4.2
    • Component/s: Async
    • Labels:
      None
    • Environment:
      Windows 10 x64 JDK 1.8

      Hi.
      This is the query I execute:

      and(new Document("visits.userID", userID),new Document("orders.postReqID", postReqID)),
      							new Document("$inc",
      							             new Document("orders.$.viewCount", 1)
      									             .append("orders.$.remaining", -1)
      							)
      									.append("$set", new Document("orders.$.endDate", currentTime)
      											.append("visits.$.date", currentTime)),
      							(r, t) ->
      							{
      								if (t != null)
      								{
      									t.fillInStackTrace();
      									t.printStackTrace();
                                                                       }
                                                               });
      

      And this produces:

      com.mongodb.MongoCommandException: Command failed with error 11000: 'E11000 duplicate key error collection: ViewMember.posts index: orders.postReqID_1 dup key: { : null }' on server localhost:27017. The full response is { "ok" : 0.0, "errmsg" : "E11000 duplicate key error collection: ViewMember.posts index: orders.postReqID_1 dup key: { : null }", "code" : 11000, "codeName" : "DuplicateKey" }
      	at com.sunova.bot.MongoDBDriver$14.lambda$requestAsync$1(MongoDBDriver.java:768)
      	at com.mongodb.internal.async.ErrorHandlingResultCallback.onResult(ErrorHandlingResultCallback.java:49)
      	at com.mongodb.async.client.MongoClientImpl$2$2.onResult(MongoClientImpl.java:144)
      	at com.mongodb.internal.async.ErrorHandlingResultCallback.onResult(ErrorHandlingResultCallback.java:49)
      	at com.mongodb.operation.OperationHelper$ReferenceCountedReleasingWrappedCallback.onResult(OperationHelper.java:368)
      	at com.mongodb.operation.CommandOperationHelper$1.onResult(CommandOperationHelper.java:381)
      	at com.mongodb.internal.async.ErrorHandlingResultCallback.onResult(ErrorHandlingResultCallback.java:49)
      	at com.mongodb.connection.DefaultServer$DefaultServerProtocolExecutor$1.onResult(DefaultServer.java:185)
      	at com.mongodb.internal.async.ErrorHandlingResultCallback.onResult(ErrorHandlingResultCallback.java:49)
      	at com.mongodb.connection.CommandProtocol$CommandResultCallback.callCallback(CommandProtocol.java:275)
      	at com.mongodb.connection.ResponseCallback.onResult(ResponseCallback.java:48)
      	at com.mongodb.connection.ResponseCallback.onResult(ResponseCallback.java:23)
      	at com.mongodb.connection.DefaultConnectionPool$PooledConnection$2.onResult(DefaultConnectionPool.java:470)
      	at com.mongodb.connection.DefaultConnectionPool$PooledConnection$2.onResult(DefaultConnectionPool.java:464)
      	at com.mongodb.connection.UsageTrackingInternalConnection$3.onResult(UsageTrackingInternalConnection.java:119)
      	at com.mongodb.connection.UsageTrackingInternalConnection$3.onResult(UsageTrackingInternalConnection.java:115)
      	at com.mongodb.internal.async.ErrorHandlingResultCallback.onResult(ErrorHandlingResultCallback.java:49)
      	at com.mongodb.connection.InternalStreamConnection.executeCallbackAndReceiveResponse(InternalStreamConnection.java:378)
      	at com.mongodb.connection.InternalStreamConnection.access$1700(InternalStreamConnection.java:66)
      	at com.mongodb.connection.InternalStreamConnection$ResponseBuffersCallback.onResult(InternalStreamConnection.java:420)
      	at com.mongodb.connection.InternalStreamConnection$ResponseBuffersCallback.onResult(InternalStreamConnection.java:389)
      	at com.mongodb.connection.InternalStreamConnection$ResponseHeaderCallback.onSuccess(InternalStreamConnection.java:562)
      	at com.mongodb.connection.InternalStreamConnection$ResponseHeaderCallback.access$2200(InternalStreamConnection.java:517)
      	at com.mongodb.connection.InternalStreamConnection$ResponseHeaderCallback$ResponseBodyCallback.onResult(InternalStreamConnection.java:584)
      	at com.mongodb.connection.InternalStreamConnection$ResponseHeaderCallback$ResponseBodyCallback.onResult(InternalStreamConnection.java:568)
      	at com.mongodb.connection.InternalStreamConnection$3.completed(InternalStreamConnection.java:447)
      	at com.mongodb.connection.InternalStreamConnection$3.completed(InternalStreamConnection.java:444)
      	at com.mongodb.connection.AsynchronousSocketChannelStream$BasicCompletionHandler.completed(AsynchronousSocketChannelStream.java:218)
      	at com.mongodb.connection.AsynchronousSocketChannelStream$BasicCompletionHandler.completed(AsynchronousSocketChannelStream.java:201)
      	at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126)
      	at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:281)
      	at sun.nio.ch.WindowsAsynchronousSocketChannelImpl$ReadTask.completed(WindowsAsynchronousSocketChannelImpl.java:579)
      	at sun.nio.ch.Iocp$EventHandlerTask.run(Iocp.java:397)
      	at sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at java.lang.Thread.run(Thread.java:745)
      

      Well I put some null value in some orders.postReqID in order to diagnose why this happens. Seems query filter is being executed somehow!! Can you guide me why I encounter such a thing? It really confuses me

            Assignee:
            Unassigned Unassigned
            Reporter:
            SuNova Alireza Mohamadi [X]
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: