mongodb - 如何从集合中获取最高概率的记录。(显示搜索最多的时间)
问题描述
我正在创建包含许多下拉列表(超过 20 个)的应用程序,用户可以选择任何下拉列表来获取结果。每个用户登录他们都在选择下拉菜单并获得结果。我正在做的是,存储每个用户的所有选定下拉值(基本上是搜索字符串),计划显示您的常见搜索,他们可以在其中复制该搜索字符串并获取结果。
下拉选择是多重的
如果它们具有最常见/几乎常见的搜索,则意图是减少选择下拉菜单的工作量。我的数据集看起来像下面存储在 MongoDB 中的数据。
此数据适用于单个用户,同样包含所有用户。
{
"UserID": "123",
"SearchData": [
{
"searchText": "Area=[Bengaluru,Mumbai] Street_Number=[123,787] Locality=[Hebala,Electronic City] Branch=India",
"searchDateTime": "2020-04-03"
},
{
"searchText": "Area=Delhi Street_Number=[123,797,753,64] Locality=[Rajbhava,Redfort]",
"searchDateTime": "2020-04-04"
},
{
"searchText": "Region=[Asia,Europe] Branch=[India,Germany] Area=Delhi",
"searchDateTime": "2020-04-02"
},
{
"searchText": "Area=[Bengaluru,Mumbai] Team_name=[Team 1, Team 2] IsNewTeam=1 Region=[Asia,Europe] Branch=India",
"searchDateTime": "2020-03-04"
},
{
"searchText": "Region=United_States Branch=NewYork Team=[Team 1,Team 4] Locality=WTO",
"searchDateTime": "2020-04-04"
}
]
}
预期结果,例如:您最常搜索/选择的字段和值是(过去 150 天searchText的结果),因为我打算不保留旧数据
1. Area=[Bengaluru,Mumbai] Branch=India Team 1 // Since this is common in many stings(Ex: Here in two strings)
2. Region=[Asia,Europe]
3. Branch=India
4. Team =Team 1
5. Area=[Bengaluru,Mumbai]
6. IsNewTeam == //If any common match found.
7. Area = //If any other common values found Expect the **Bengaluru,Mumbai**
//Ex : Dehli, Noida. This should come here
任何帮助将不胜感激。
提前致谢