【发布时间】:2023-03-18 12:20:01
【问题描述】:
我想在 C# 中使用 Linq 从 MongoDB 中随机获取一条记录。这就是我正在做的事情。
public string RandomWord()
{
using (Mongo mongo = new Mongo(_mongoConfig.BuildConfiguration()))
{
try
{
mongo.Connect();
var db = mongo.GetDatabase(_dbName);
IMongoCollection<dic_words> collection = db.GetCollection<dic_words>();
return
(from w in collection.Linq()
where w.word.Length > 2
orderby Guid.NewGuid()
select w).Take(1).FirstOrDefault().word;
}
catch (Exception)
{
throw;
}
}
}
这是我得到的错误
查询太复杂,MongoDB 无法处理。尝试手动构建 map-reduce 查询或简化查询并使用 Linq-to-Objects。
提前致谢。
【问题讨论】:
-
请注意,现在官方 C# 驱动程序支持 LINQ,您可能应该从不再支持的 FluentMongo 切换。请参阅stackoverflow.com/questions/9991722/… 了解更多信息。
标签: c# linq mongodb random mongodb-.net-driver