MongoDB Facet 错误管道需要文本分数元数据,但没有可用的文本分数



我创建了一个mongodb多面管道,以下是它的子集:

db.books.aggregate( [
{
$facet: {
"categories": [
{
$match: {
$text: { $search: "Pattern" }
}
}, 
{
$group: {
_id: "$Category",
count: {
$sum: 1
}
}
},
{
$sort: {
"count": -1
}
},
{
$project: {
"score": { "$meta": "textScore"},
"Category": "$_id",
"_id": 0,
"count": 1
}
},
{
$limit: 10
}
]
}
}
])

除了类别之外,管道中还存在另外两个输出字段,但类似于上述管道中概述的结构。 每当我运行此管道时,我都会收到错误:"管道需要文本分数元数据,但没有可用的文本分数">

此错误仅在使用分面管道时发生。单独运行每个管道阶段可以完美运行。

如果您对此有任何想法,请随时分享

谢谢!

这已经在 groups.google.com/forum/#!topic/mongodb-user/Amozaj74prI 中得到了回答

总之,需要的是比赛阶段出现在管道的开头,而不是出现在每个方面阶段:

db.books.aggregate( [
{ $match: {$text: {$search: "Pattern"}}},
{ $addFields: {score: {$meta: "textScore"}}},
{ $facet: ... }
])

最新更新