【发布时间】:2017-10-09 10:12:40
【问题描述】:
我需要在特定文档的字段中搜索文本。 考虑以下文档...
"_id" : ObjectId("59cc8af23b86730a2c9a603f"),
"social_friends" : {
"google" : [
{
"name" : "User one",
"id" : "1003153275"
},
{
"name" : "user two",
"id" : "10210778"
},
{
"name" : "user three",
"id" : "115131"
},
{
"name" : "user four",
"id" : "117113"
}
]
}
我想通过“姓名”搜索用户, 例如:如果我搜索“四”,我希望结果为
{
"name" : "user four",
"id" : "117113"
}
我尝试过创建文本索引并搜索
db.collection.find({$text:{$search:"user four"}}).pretty()
但它正在搜索集合中的所有文档并返回多个文档,
然后我使用“_id”进行过滤
db.collection.find({$text:{$search:"user four"},"_id" : ObjectId("59cc8af23b86730a2c9a603f")}).pretty()
但它返回整个文档而不是像下面这样的子文档。
{
"name" : "user four",
"id" : "117113"
}
首先,有可能做到这一点吗?由于我是 Mongo 的新手,任何帮助将不胜感激。谢谢。
【问题讨论】:
标签: arrays ruby mongodb mongodb-query aggregation-framework