【发布时间】:2015-10-01 13:35:07
【问题描述】:
我有一个CollectibleCodec<Thing>,用于与 MongoDB 数据库进行交互:
public class ThingCodec implements CollectibleCodec<Thing> { /* ... */ }
// ...
MongoCollection<Thing> things = database
.withCodecRegistry(CodecRegistries.fromCodecs(new ThingCodec()))
.getCollection("things", Thing.class);
通过此编解码器读取和写入Things 工作正常,但有一个问题:永远不会调用ThingCodec.generateIdIfAbsentFromDocument(Thing) 方法,因此除非我在保存之前设置了ID,否则这些东西会在没有ID 的情况下保存在数据库中.有什么方法可以配置 MongoDB 驱动程序在我插入或更新集合中的项目时自动调用此方法?
【问题讨论】:
-
你的实现是什么?您没有在此处显示它,但它应该类似于this。如果还有问题,请添加实现。
-
我的错误。我一定误解了我的同事。我们测试了这个行为,发现我们在
generateIdIfabsentFromDocument中的调试日志没有被调用,但是当我自己尝试这个时,我发现这个方法实际上被调用了。无论如何,感谢您花时间看它!
标签: java mongodb mongodb-java