答案 0 :(得分:0)
_id
字段的4个高位字节表示时间戳,您可以根据该字段进行查询。时间戳仅精确到一秒,因此按_id排序文档并不能保证按插入时间严格排序。但是,它确实为您提供了严格按照插入时间排序的文档。
如果这对你的情况足够好,这里有一些示例代码。
我们保存在集合中的示例文档:
class Entity
{
public ObjectId Id { get; set; }
}
假设我们有一些MongoCollection collection
,我们可以找到实体对象entity
的上一条记录,如下所示:
IMongoQuery query = Query.LT("_id", entity.Id);
IMongoSortBy sort = SortBy.Descending("_id");
MongoCursor<Entity> cursor = collection.Find(query).SetSortOrder(sort).SetLimit(1);
if (cursor.Size() > 0)
{
Entity previousEntity = cursor.First();
Console.WriteLine(string.Format("Found {0} as the previous entry.", previousEntity.Id));
}