我有一个mongo集合,它有一个数组(来自NLP进程的bigrams),我希望能够搜索,例如;
{
"sentence" : "will most likely be",
"biGrams" : [["will","most"], ["most","likely"], ["likely", "be"]
},
{
"sentence" : "likely most people use stackoverflow",
"biGrams" : [["likely","most"], ["most","people"], ["people", "use"], ["use", "stackoverflow"]
}
我希望能够做的是在biGram sub-doucment中搜索其中一个bigrams的某个实例,例如:搜索包含双字母[“最”,“可能”]的所有句子。
我试过了;
find({'biGrams':{$elemMatch: {$elemMatch:{$in:['most','likely']}} }})
但是这显然发现所有带有“最多”或“可能”一词的案例都存在。顺序很重要,即我不想在这个例子中找到['可能','最''的文档。
提前谢谢,我很难过......
答案 0 :(得分:1)
怎么样
find({"biGrams":["most","likely"]})
在特定字段上搜索“展开”该字段中的一个级别的数组,并且搜索特定数组应该是该数组上的二进制匹配。