假如有一个名为articles的集合,数据如下:
{ "_id"
:
1, "title"
:
"cakes and ale" }
{ "_id"
:
2, "title"
:
"more cakes" }
{ "_id"
:
3, "title"
:
"bread" }
{ "_id"
:
4, "title"
:
"some cakes" } |
执行如下搜索后,可以得到文档对于cake关键字的相关度以及对应的文档个数:
db.articles.aggregate(
[
{ $match: { $text: { $search:
"cake" } } },
{ $group: { _id: { $meta:
"textScore" }, count: { $sum:
1 } } }
]
)
|
执行结果如下:
{ "_id"
:
0.75, "count"
:
1 }
{ "_id"
:
1, "count"
:
2 }
|
当然,也可以按照结果的相关度进行排序。
db.articles.aggregate(
[
{ $match: { $text: { $search:
"cake" } } },
{ $ sort: { score: { $meta:
"textScore" } } }
]
)
|
返回的结果就是按照相关度进行排序后的结果。