私はMongodbの集計メソッドをテキスト検索に対して使用しています。私はこれでいろいろ試してきましたが、結果をフィルタリングする正しい方法を見つけることができません。私はインデックスをセットアップしただけで、$ textの検索だけでうまく動作し、ちょうどクエリだけでうまく動作します。Mongodb - 検索クエリで集約テキスト検索を使用する方法
ここでテキスト検索を行うに私のコードです:
Model.aggregate([
{ $match: { $text: { $search: searchValue } } },
{ $project: { displayTitle: 1, title: 1, body: 1, _type: 1, _id: 1, score: { $meta: "textScore" } } },
{ $match: { score: { $gt: 1.0 } } }
], function (err, models) {
})
私はこのクエリによってさらにモデルをフィルタリングすることができるようにしたいしかし:
Model.find({_parentIds: {$in: arrayOfIds}})
私はこれが働くだろうと思っているだろう:
Model.aggregate([
{ $match: { $text: { $search: searchValue }, _parentIds: {$in: arrayOfIds} } },
{ $project: { displayTitle: 1, title: 1, body: 1, _type: 1, _id: 1, score: { $meta: "textScore" } } },
{ $match: { score: { $gt: 1.0 } } }
])
しかし、悲しいことに、それはありません。誰かがこれを試したことがありますか?このようなものになるだろう
[{
displayTitle: "first item",
title: "first_item",
_type: "item",
_parentIds: ["123", "234"]
}, {
displayTitle: "second item",
title: "second_item",
_type: "item",
_parentIds: ["123", "234"]
}, {
displayTitle: "third item",
title: "third_item",
_type: "item",
_parentIds: ["345", "456"]
}]
私の現在の検索:
searchValue = "item"
arrayOfIds = ["345"];
と裏面のみ、この文書を期待されるだろう:
{
displayTitle: "third item",
title: "third_item",
_type: "item",
_parentIds: ["345", "456"]
}
ここ
は私がを検索しています例集です
ありがとうございます!
は、あなたがサンプル文書と予想される出力を追加してくださいことはできますか? – Veeram
@Veeram - サンプルコレクションと予想出力を追加しました – darylhedley