查询MongoDB中的数组数组

时间:2013-12-05 17:02:56

标签: mongodb

我有一个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']}} }})

但是这显然发现所有带有“最多”或“可能”一词的案例都存在。顺序很重要,即我不想在这个例子中找到['可能','最''的文档。

提前谢谢,我很难过......

1 个答案:

答案 0 :(得分:1)

怎么样

find({"biGrams":["most","likely"]})

在特定字段上搜索“展开”该字段中的一个级别的数组,并且搜索特定数组应该是该数组上的二进制匹配。

相关问题