我正在尝试从集合中的所有文档中检索单个属性。想要一种在设定限制并获得不同值的同时过滤一段时间结果的方法。
这是我的文档在集合中的外观:
{
_id: [ObjectId],
number: [string],
timestamp: [Datetime]
}
我使用的是2.7版本的驱动程序。
所以我想在 timestamp 属性的特定时间段中检索文档的 number 字段。而且,虽然_id属性较大,然后是特定属性...
到目前为止,我尝试过的查询是:
var filter = Builders<Entity>.Filter.And(
Builders<Entity>.Filter.Gte(entity => entity.timestamp, startDate),
Builders<Entity>.Filter.Lte(entity => entity.timestamp, endDate),
Builders<Entity>.Filter.Gte(entity => entity.Id, objectId));
var query = collection
.DistinctAsync(item => item.number, filter);
无法设置限制?
var filter = Builders<Entity>.Filter.And(
Builders<Entity>.Filter.Gte(entity => entity.timestamp, startDate),
Builders<Entity>.Filter.Lte(entity => entity.timestamp, endDate),
Builders<Entity>.Filter.Gte(entity => entity.Id, lastObjectId));
var query = collection
.Find(filter)
.Sort(Builders<Entity>.Sort.Ascending(entity => entity.number))
.Project(entity => new { entity.number})
.Limit(100);
无法获得独特的价值?
由于集合的大小,我不想在客户端上执行任何这些操作。
有人有解决方案吗?提前致谢!