使用 MongoDb C# 驱动程序示例 () 时遇到困难

Having Difficulty Using MongoDb C# Driver's Sample()

我正在尝试使用 Sample() 方法从数据库中获取一些随机项目。我更新到最新版本的驱动程序并从链接示例中复制了 using 语句。但是,有些东西不起作用,我希望这是我的一些简单错误。所有相关信息都在下图中:

编辑:

Greg,我阅读了聚合文档 here and the raw db method doc here,但我还是不明白。最后两行是我的尝试,我以前从未使用过聚合:

            var mongoCollection = GetMongoCollection<BsonDocument>(collectionName);
            long[] locationIds = new long[] { 1, 2, 3, 4, 5 };
            var locationsArray = new BsonArray();
            foreach (long l in locationIds) { locationsArray.Add(l); };
            FilterDefinition<BsonDocument> sampleFilter = Builders<BsonDocument>.Filter.In("LocationId", locationsArray);
            var findSomething = mongoCollection.Find(sampleFilter); //this works, the two attempts below don't.
            var aggregateSomething = mongoCollection.Aggregate(sampleFilter).Sample(25);
            var aggregateSomething2 = mongoCollection.Aggregate().Match(sampleFilter).Sample(25);

样本只能从聚合中获得。您需要从聚合开始,而不是查找。我相信它在 Linq 中也可用。

更新: 看起来我们没有专门的方法。但是,您可以使用 AppendStage 方法。

mongoCollection.Aggregate(sampleFilter)
               .AppendStage<BsonDocument>("{ $sample: { size: 3 } }");