MongoDB:将 $sample 与 C# 驱动程序一起使用

Rom*_*nko 4 mongodb mongodb-.net-driver

我尝试使用 MongoDB C# 驱动程序 (2.4.4) 表达以下查询:

db.media.aggregate({ $sample: { size: 1 }})
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所拥有的:

BsonDocument sample = new BsonDocument
{
    { "$sample", new BsonDocument { { "size", 1 } } }
};
MongoBlob mongoBlob = await _collection
    .Aggregate()
    .Group<MongoBlob>(sample)
    .FirstOrDefaultAsync();
Run Code Online (Sandbox Code Playgroud)

我不能把sampleto放进.Aggregate(AggregateOptions options = null)去,把它放进去.Group(...)显然是错误的。也没有类似的.Sample()方法。

请帮忙。先感谢您。

小智 6

简单地,

var randEl = await collection.AsQueryable().Sample(1).FirstOrDefaultAsync();
Run Code Online (Sandbox Code Playgroud)

不要忘记添加

using MongoDB.Driver.Linq;
Run Code Online (Sandbox Code Playgroud)