使用MongoDb C驱动程序示例()有困难

使用MongoDb C驱动程序示例()有困难,mongodb,mongodb-.net-driver,Mongodb,Mongodb .net Driver,我正在尝试使用该方法从数据库中获取一些随机项。我更新到了驱动程序的最新版本,并从链接的示例中复制了using语句。然而,有些东西不起作用,我希望这是我的一些简单的错误。所有相关信息如下图所示: 编辑: 格雷格,我读过聚合文档和原始数据库方法,但我还是不明白。最后两行是我的尝试,我以前从未使用过聚合: var mongoCollection = GetMongoCollection<BsonDocument>(collectionName);

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

编辑:

格雷格,我读过聚合文档和原始数据库方法,但我还是不明白。最后两行是我的尝试,我以前从未使用过聚合:

            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 } }");

克雷格,你能给我举个例子吗?我试图寻找您使用的CreateQuery函数,希望它有一个聚合示例,但我没有找到它。