gpt4 book ai didi

c# - C# LINQ 中的 MongoDB 随机结果

转载 作者:IT老高 更新时间:2023-10-28 13:25:11 24 4
gpt4 key购买 nike

我正在使用 MongoDB 的 linq 驱动程序从数据库中获取我的结果

mymongocollection.AsQueryable().Where(x => x.Type == 1);

现在我想从上面返回 20 条随机记录。我一直在搜索,但找不到使用 LINQ 的正确方法。我不喜欢在内存中进行,而是在数据库中进行。我发现您可以使用 MongoDB 的 $sample 聚合,但我不知道如何将其转换为 LINQ(如果可能的话)。

最佳答案

我猜您使用的命名空间不正确,例如使用 System.Linq;,它提供了对 IQueryable 的访问。

您应该改用 using MongoDB.Driver.Linq; 这将允许访问具有 sample 聚合的 MongoQueryable 实现

您可以在 2.4.0 驱动版本中尝试以下聚合。

using MongoDB.Driver.Linq; 
collection.AsQueryable().Where(x => x.Type == 1).Sample(20);

输出

{aggregate([{ "$match" : { "Type" : 1 } }, { "$sample" : { "size" : NumberLong(20) } }])}

引用这里

https://jira.mongodb.org/browse/CSHARP-1773

https://jira.mongodb.org/browse/CSHARP-1366

关于c# - C# LINQ 中的 MongoDB 随机结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46616574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com