收集如下
Document 1
{
"entity" : "university",
"parEnityHRCHY" : "Planet>continent>country>state>city",
"parEnityVal" : "earth>North America>Massachusetts>Boston",
"entityVal" : [
"MIT",
"Harvard",
"New England"
]
}
Document 2
{
"entity" : "university",
"parEnityHRCHY" : "Planet>continent>country>state",
"parEnityVal" : "earth>North America>Massachusetts",
"entityVal" : [
"A",
"B",
"C"
]
}
我想为输入“entity”,“parEnityHRCHY”,“parEnityVal”获取最佳匹配“entityVal” 如果该值在完全匹配时不可用,则应该递归查看直到根。 例如。在上述情况下,如果在城市一级没有“大学”价值,那么它应该像州级一样看待
如果匹配完全低于条件返回结果。
输入: “parEnityHRCHY”:“Planet> continent> country> state> city”, “parEnityVal”:“earth> North America> Massachusetts> Boston”,
否则看一个级别
"parEnityHRCHY" : "Planet>continent>country>state",
"parEnityVal" : "earth>North America>Massachusetts",
等等,直到根元素。
请建议一些方法,我打算使用$ text搜索,收集的文件最大数量约为1百万,最高HRCHY等级为10.
答案 0 :(得分:0)
您可以尝试这样的事情:
db.doc.find({"parEnityHRCHY" : "Planet>continent>country>state",'parEnityVal':{$regex:"earth>North America>Massachusetts"}})
但我不确定如果您正在寻找类似的东西。