如何在java中将最后一个特定文档插入MongoDB中

时间:2015-10-05 13:07:49

标签: java mongodb

我是MongoDB和Java的新手,我需要做一个非常简单的查询:获取插入集合中的对象的最后一个文档。如果我使用mongo shell我使用$last然后我将key value和timestamp字段放到最后一个文档但是使用java驱动程序(3.0.4)我没有发现last语句< / p>

1 个答案:

答案 0 :(得分:1)

不要依赖MongoDB始终按插入顺序返回文档。 MongoDB不保证它会保持一致。当一个集合通过删除和更新而碎片化时,可能会发生MongoDB在中间某处插入一个新文档。

作为替代解决方案,您可以按时间戳字段或_id(自动生成的ObjectID&以其创建的时间戳开头)对结果进行排序。降序索引可以大大提高性能。

顺便说一下:当你这样做的原因是你想要在同一个过程中插入的文档时,这可能是一个非常脆弱的解决方案。当多个进程同时插入文档时,一个进程可能会使文档被另一个进程插入。如果要插入文档并维护句柄以便以后可以更改同一文档,请考虑通过创建new ObjectID()在Java中手动分配_id。然后,您可以使用该ObjectID稍后引用该文档。