Конвейер ошибки фасета MongoDB требует метаданных текстовой оценки, но текстовая оценка недоступна - PullRequest
0 голосов
/ 23 октября 2018

Я создал граненый конвейер 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
                }
            ]
        }
    }
])

Два других выходных поля существуют в конвейере, кроме категории, но напоминают структуру, описанную в конвейере выше.Всякий раз, когда я запускаю этот конвейер, я получаю сообщение об ошибке: «конвейер требует метаданных текстовой оценки, но текстовая оценка недоступна»

Эта ошибка возникает только при использовании фасетного конвейера.Запуск каждого этапа трубопровода в отдельности работает отлично.

Если у вас есть какие-либо мысли по этому поводу, пожалуйста, не стесняйтесь поделиться

Спасибо!

1 Ответ

0 голосов
/ 31 октября 2018

На этот вопрос ответили groups.google.com / forum / #! Topic / mongodb-user / Amozaj74prI

Таким образом, необходимо было указать стадию матча наначало конвейера вместо того, чтобы находиться на каждом этапе:

db.books.aggregate( [
    { $match: {$text: {$search: "Pattern"}}},
    { $addFields: {score: {$meta: "textScore"}}},
    { $facet: ... }
])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...