【发布时间】:2016-10-31 08:12:09
【问题描述】:
假设我创建了以下数据库/集合:
use articles
db.stores.insert( [
{_id : 1, arr : ['abc xyz', 'def']},
{_id : 2, arr : ['jadskf', 'ljh abc']}])
db.stores.createIndex({"arr" : "text"})
我想对数组 arr 进行文本搜索,并且只获取与搜索匹配的数组元素。
例如,
> db.stores.find({$text : {$search : "abc"}})
{ "_id" : 1, "arr" : [ "abc xyz", "def" ] }
{ "_id" : 2, "arr" : [ "jadskf", "ljh abc" ] }
理想情况下,我只想获取第一个文档中arr 的第一个元素:abc xyz,并且仅获取第二个文档中arr 的第二个元素:ljh abc,以及@ 987654329@ 的匹配文档。
这可能吗?如果有,怎么做?
请注意,我想要的不是arr 元素的简单投影,而是匹配发生的arr 的元素。
我正在使用 Mongo 3.2.7。
【问题讨论】:
-
@LuizdePrá 这是一个有点不同的问题
标签: arrays mongodb full-text-search