如何为下面的案例形成一个mongo最佳匹配查询以实现性能

时间:2017-12-08 01:57:01

标签: mongodb algorithm search mongodb-query

收集如下

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.

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

db.doc.find({"parEnityHRCHY" : "Planet>continent>country>state",'parEnityVal':{$regex:"earth>North America>Massachusetts"}})

但我不确定如果您正在寻找类似的东西。