如何使用Linq或Lambda按C#MongoDB的字符串出现次数排序
我有一节这样的课如何使用Linq或Lambda按C#MongoDB的字符串出现次数排序,c#,linq,mongodb,lambda,C#,Linq,Mongodb,Lambda,我有一节这样的课 [Serializable] public class CatalogData { public CatalogData(); public BsonObjectId _id { get; set; } [BsonIgnoreIfNull] public string CatalogId { get; set; } public string CatalogName { get; set; } public List<Cat
[Serializable]
public class CatalogData
{
public CatalogData();
public BsonObjectId _id { get; set; }
[BsonIgnoreIfNull]
public string CatalogId { get; set; }
public string CatalogName { get; set; }
public List<CatalogPageData> Pages { get; set; }
}
[Serializable]
public class CatalogPageData
{
public CatalogPageData();
public string _id { get; set; }
[BsonIgnoreIfNull]
public List<string> Keywords { get; set; }
}
结果应该是:
CatalogData[3]
CatalogData[0]
CatalogData[2]
CatalogData[1]
因为CatalogData[3]=4(牛奶3次,大豆1次)中listKeywords的出现率,CatalogData[0]=3,CatalogData[2]=2,CatalogData[1]=1
我有没有办法得到那样的结果
对不起,我的英语不好我认为如果不使用C#进行最后排序,就没有办法完成这项工作。但是,您正在编写的查询似乎最好使用全文搜索引擎。MangoDB中有一个还没有准备好生产,或者你可以用“CyrasQuest/SoRR”之类的方法来考虑,比如“做C排序中的最后排序”。你的意思是在得到所有结果后对它排序,或者用自定义的OrthBube函数排序它。如果您的意思是按自定义.OrderBy函数排序,请您给我一些参考,因为当我尝试只返回总计数的int的函数时,出现了一个错误“无法确定表达式的序列化信息”…请在将集合返回给客户端后进行排序。好的,谢谢您的帮助。我想没有别的办法了。想了解更多关于ElasticSearch/Solr的建议吗
CatalogData[0].Pages[0].Keywords = {"meat", "milk", "sauce", "soy", "fish"}
CatalogData[0].Pages[1].Keywords = {"meat", "fish"}
CatalogData[0].Pages[2].Keywords = {"sauce", "fruit", "milk"}
CatalogData[1].Pages[0].Keywords = {"fish"}
CatalogData[1].Pages[1].Keywords = {"meat"}
CatalogData[2].Pages[0].Keywords = {"milk", "soy"}
CatalogData[2].Pages[1].Keywords = {"sauce", "soy"}
CatalogData[3].Pages[0].Keywords = {"meat", "milk", "fish"}
CatalogData[3].Pages[1].Keywords = {"meat", "milk", "soy", "fish"}
CatalogData[3].Pages[2].Keywords = {"meat", "milk", "sauce""fish"}
listKeywords = {"meat", "soy"}
CatalogData[3]
CatalogData[0]
CatalogData[2]
CatalogData[1]