MongoDB数字索引

时间:2017-11-29 14:36:05

标签: database mongodb

我想知道是否可以创建一个数字计数索引,其中第一个文档为1,并且当插入新文档时,计数会增加。如果可能,您还可以将它应用于通过mongoimport导入的文档吗?我已经通过db.collection.createIndex( {index : 1} )创建并编制了索引,但它似乎没有应用。

1 个答案:

答案 0 :(得分:0)

我强烈建议您使用ObjectId作为_id字段。这样做的好处是可以为分布式系统提供良好的价值,同时也可以基于它的创建日期。它在MongoDB中也有一个内置索引。

使用Morphia的示例:

Date d = ...;
QueryImpl<MyClass> query = datastore.createQuery(MyClass);
query.field("_id").greaterThanOrEq(new ObjectId(d));
query.sort("_id");
query.limit(100);
List<MyClass> myDocs = query.asList();

这将按照创建顺序获取自日期d以来创建的所有文档。

要加载下一批,请更改为:

query.field("_id").greaterThan(lastDoc.getId());

这将根据上一批中最后一个文档的ID非常有效地加载下一批。