我在mongo db中有一個集合,稱爲被稱爲頁面。 因爲我有一系列稱爲文章的文檔。 並且在那個數組中的每個文檔中,我都有一個文章編號和文章內容。
我想要做的是展開文章,然後使用$文本搜索文章內容中的單詞。但$文本必須處於管道的第一階段。
如果我在管道的第一階段執行而沒有展開,現在會發生什麼情況,即首次搜索文本時,它會返回該文檔的所有其餘文章,而不管文本是否具有文本。
注意:Pages集合包含大量文檔。
樣品採集:
{
pageNo: 1,
articles:[{
articleNo:1,
articleContent:"cat dog cat dog"
},{
articleNo:2,
articleContent:" Some random text"
}]
},
{
pageNo: 2,
articles:[{
articleNo:1,
articleContent:"Some random text"
},{
articleNo:2,
articleContent:"cat dog cat"
}]
}
預期輸出:說我搜索 「貓」
{
pageNo:1,
articles:[{
articleNo:1,
articleContent:"cat dog cat dog"
}]
},
{
pageNo:2,
articles:[{
articleNo:2,
articleContent:"cat dog cat"
}]
}
請添加示例文檔和您的預期結果。無論如何,如果由於文本索引而使用'$ text',那麼你是對的,索引只能在管道的第一階段使用。您仍然可以在'$ unwind'之後搜索文本並獲得所需的結果,但不會使用索引。如果這是一項要求,請更改您的模式。 – TomG
@Tom是可能的文章索引文章內容 –
這是可能的,但只有在'$匹配'階段和只有當第一階段的聚合管道。所以它不會給你所需的結果。看到我的答案。 – TomG