Details
-
Task
-
Resolution: Works as Designed
-
Major - P3
-
None
-
3.4.2
-
None
-
Windows 10 x64 JDK 1.8
Description
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