2016-09-08 38 views
0

搜索查詢如果關鍵字給出紅衫,結果集應該是像需要MongoDB的

如果我用這個查詢{$text: {$search: "\""+req.body.productName+"\""}} 得到的結果

店這個橙色colou 紅色襯衫面料及隨處可見 這款面料來自Fashion Foreplus的時尚女裝領先男裝s 時尚商店棉混紡和充滿活力的柔和色彩給人喲

,但我需要的結果

店這橙色布並獲得處處注意到 這種面料來自於房子襯衫Faslike的

如果給定的關鍵字儘管我應該得到一個結果,但它處於不同的地方。

+0

我試過這個查詢db.collection('collection')。find({$ text:{$ search:「\」red shirt \「」}}) –

+0

您在哪個屬性中存儲'color red'?你能在這裏發佈單個文檔 – abdulbarik

+0

{ 「_id」:物件(「57d110a78137536c0a0ca258」), 「產品名稱」:「時裝Foreplus條紋棉混紡ShirtFabric1431」, 「產品描述」:「購買該橙色襯衫面料和別人的關注到處都是這種面料來自Fashion Foreplus的領先男裝時尚店棉混紡和充滿活力的柔和色彩給予喲「 } –

回答

0

您可以使用此查詢

db.collection('collection').find({ProductName:new RegExp('red shirt', 'i')}) 
+0

得到相同的結果 –

+0

db.collection('collection')。find({ProductName:new RegExp('red shirt','i')})我應該得到結果,其中包含紅色和襯衫兩個字,但不必並排,但兩個字應該出現 –

+0

嘗試使用圍繞紅色和襯衫的單詞邊界。 'new RegExp('\ bred \ sshirt \ b','i')' –

0

這不會工作@kalyan Manthena。原因:

查看產品描述:選購這款橙色襯衫面料,隨處可見,這款面料來自Fashion Foreplus的時尚店鋪領先的男士時尚商店棉質混紡和充滿活力的柔和色彩賦予喲。

現在想象文本索引是建立在產品描述字段,你運行

db.yourCollection.find({$文字:{$搜索:「紅衫」}})查詢

會干擾並嘗試在描述中匹配紅色和襯衫,儘管它沒有發現紅色(作爲一個詞),但它發現襯衫並將整個描述返回。

您的除外結果:購買該紅橙色面料和讓別人注意到隨處可見這種面料來自Faslike

的房子襯衫這是否文本甚至存在您的集合中的任何產品? Mongo無法爲您創建文本。它只能查詢系統中的內容。