-
Type:
Task
-
Resolution: Done
-
Priority:
Minor - P4
-
None
-
Affects Version/s: 3.0.2
-
Component/s: Codecs
-
None
-
Environment:ubuntu x64, java 8
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Following the aggregation example
http://docs.mongodb.org/getting-started/java/aggregation/
I have tried to make a similar operation on my set of documents.
The only difference is that I tried to use $in in the $match clause.
The same operation in the shell works
db.getCollection('test').aggregate([ {"$match": {"code":
}}]);
using the driver it looks like this
String[] codes =
;
AggregateIterable<Document> iterable = db.getCollection("test").aggregate(asList(
new Document("$match", new Document("code", new Document("$in", codes)))));
however it fails with
Exception in thread "main" org.bson.codecs.configuration.CodecConfigurationException: Can't find a codec for class [Ljava.lang.String;.
at org.bson.codecs.configuration.CodecCache.getOrThrow(CodecCache.java:46)
at org.bson.codecs.configuration.ProvidersCodecRegistry.get(ProvidersCodecRegistry.java:63)
at org.bson.codecs.configuration.ChildCodecRegistry.get(ChildCodecRegistry.java:51)
at org.bson.codecs.DocumentCodec.writeValue(DocumentCodec.java:174)
at org.bson.codecs.DocumentCodec.writeMap(DocumentCodec.java:189)
at org.bson.codecs.DocumentCodec.writeValue(DocumentCodec.java:172)
at org.bson.codecs.DocumentCodec.writeMap(DocumentCodec.java:189)
at org.bson.codecs.DocumentCodec.writeValue(DocumentCodec.java:172)
at org.bson.codecs.DocumentCodec.writeMap(DocumentCodec.java:189)
at org.bson.codecs.DocumentCodec.encode(DocumentCodec.java:131)
at org.bson.codecs.DocumentCodec.encode(DocumentCodec.java:45)
at org.bson.BsonDocumentWrapper.getUnwrapped(BsonDocumentWrapper.java:189)
at org.bson.BsonDocumentWrapper.get(BsonDocumentWrapper.java:129)
at com.mongodb.AggregateIterableImpl.execute(AggregateIterableImpl.java:118)
at com.mongodb.AggregateIterableImpl.forEach(AggregateIterableImpl.java:107)
at AggregationTest.main(AggregationTest.java:27)