0

我想根据记录的插入日期时间来获取上一条和下一条记录。

看了官方文档,还是不知道怎么办。

任何人都可以帮助我,使用 C# 还是 Linq?

4

1 回答 1

0

_id字段的高 4 个字节代表一个时间戳,您可以根据该字段进行查询。时间戳仅精确到一秒,因此按 _id 对文档进行排序并不能保证按插入时间进行严格排序。但是,它确实为您提供了大约按插入时间排序的文档的严格排序。

如果这对您的情况来说足够好,这里有一些示例代码。

我们保存在集合中的示例文档:

class Entity
{
    public ObjectId Id { get; set; }
}

假设我们有一些 MongoCollection collection,我们可以找到 Entity 对象的先前记录, 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));
}
于 2013-05-01T14:28:02.280 回答