我的文档结构:
{
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
的数组条目吗?
答案 0 :(得分:1)
没有。 MongoDB中的查询返回文档,而不是子文档。对于某些类型的查询,可以返回第一个匹配的数组元素,但文本查询不是这种情况。通常,您可以使用聚合管道来提取所有匹配的数组元素,但使用文本索引也是如此。如果要查询匹配子文档,则应重新设计模式,以使子文档成为完整的文档。