文本搜索仅返回相关的子文档

时间:2015-04-30 09:29:19

标签: mongodb

我的文档结构:

{ 
    data : {
        "0" : {
                 "title" : "example1",...
         },
        "1" : {
                 "title" : "example2",...
         }
}              

我已在此文档中创建了Text index

db.collection.createIndex({"$**" : "text"}, {name: "collIndex"})

现在运行Text query

db.collection.find({$text : {$search: "example1"}})

我回来了Document。是否可以只获取包含相关文本数据的subDocument?例如,对于上面提到的查询将导致

 { "0" : {"title" : "example1",...} ..}

---编辑---

数据与数组相同的问题:

data : [{title: "example1"..}, {title : "example2"}]

我只能获得包含text query的数组条目吗?

1 个答案:

答案 0 :(得分:1)

没有。 MongoDB中的查询返回文档,而不是子文档。对于某些类型的查询,可以返回第一个匹配的数组元素,但文本查询不是这种情况。通常,您可以使用聚合管道来提取所有匹配的数组元素,但使用文本索引也是如此。如果要查询匹配子文档,则应重新设计模式,以使子文档成为完整的文档。