2015-10-05 27 views
0

插入到MongoDB的最后一个特定的文档,我很新的MongoDB和Java,我需要做一个非常简单的查询:让插入集合中的对象的最后文件。如果我使用蒙戈外壳我用$last,然后我把key value和时间戳字段,以获得最后的文件,但使用Java驱动程序(3.0.4),我什么也没找到关于last声明如何获得在Java

回答

1

不要依赖MongoDB中总是返回文档广告订单。 MongoDB不保证它会保持一致。当一个集合通过删除和更新被分割时,MongoDB可能会在中间的某处插入一个新文档。

作为一种替代解决方案,您可以按以下方法排序降序通过时间戳字段或_id(自动生成的对象ID的开始,他们在被创建的时间戳)。降序索引可以大大提高性能。

顺便说一句:当你这样做的原因是因为你想要做的和你刚插入的同一个进程中的文档的东西,那么这可能是一个非常脆弱的解决方案。当多个进程同时插入文档时,一个进程可能会获取由另一个进程插入的文档。当你要插入一个文档并保持手柄,使您可以在以后更改相同的文档,可以考虑通过创建一个new ObjectID()在Java中手动分配_id。然后您可以使用该ObjectID稍后参考文档。

+0

对不起,我没有写,我也有一个字段中指定的时间戳,我保存日期 – Tinwor