Details
-
Bug
-
Resolution: Works as Designed
-
Major - P3
-
None
-
3.11.0
-
None
Description
How to re-produce:
First, create an index that has partialFilterExpression which contains DBRef, such as:
db.user.createIndex({"organisation": 1, "email": 1}, {name: "org-uniq-email", unique: true, partialFilterExpression: {"organisation": DBRef("organisation", ObjectId("59ce08baf264b906810fe8c5")), "email": {$exists: true}}}) |
Then try to list and print those indexes:
public static void main(String[] args) { |
try (MongoClient mongo = new MongoClient("localhost")) { |
MongoDatabase db = mongo.getDatabase("test"); |
MongoCollection<Document> col = db.getCollection("user"); |
col.listIndexes().spliterator().forEachRemaining(index -> System.out.println(index.toJson()));
|
}
|
}
|
This results in exception:
Exception in thread "main" org.bson.codecs.configuration.CodecConfigurationException: Can't find a codec for class com.mongodb.DBRef.
|
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.ProvidersCodecRegistry.get(ProvidersCodecRegistry.java:37)
|
at org.bson.codecs.DocumentCodec.writeValue(DocumentCodec.java:184)
|
at org.bson.codecs.DocumentCodec.writeMap(DocumentCodec.java:199)
|
at org.bson.codecs.DocumentCodec.writeValue(DocumentCodec.java:182)
|
at org.bson.codecs.DocumentCodec.writeMap(DocumentCodec.java:199)
|
at org.bson.codecs.DocumentCodec.encode(DocumentCodec.java:141)
|
at org.bson.codecs.DocumentCodec.encode(DocumentCodec.java:45)
|
at org.bson.Document.toJson(Document.java:439)
|
at org.bson.Document.toJson(Document.java:412)
|
at org.bson.Document.toJson(Document.java:399)
|