2015-10-15 41 views
0

我在具有以下格式的字段id和語音的名稱爲speech的mongodb集合中有數據。搜索在mongodb和mongodb中的字符串類型字段中包含的所有值java

{ "speechtext" : "Always be a good boy" }, 
{ "speechtext" : "Always be a simply guy" }, 
{ "speechtext" : "Always be a cute boy" }, 
{ "speechtext" : "I am a girl." } 

我必須代表兩個關鍵字(如「總是」和「男孩」)獲取數據以獲取條件和/或否。

如果條件是「和」用關鍵詞搜索「始終是」和「男孩」的結果將是 -

{ "speechtext" : "Always be a good boy" }, 
{ "speechtext" : "Always be a cute boy" } 

如果條件是「或」與關鍵字搜索「始終是」和「男孩「結果將是 -

{ "speechtext" : "Always be a good boy" }, 
{ "speechtext" : "Always be a simply guy" }, 
{ "speechtext" : "Always be a cute boy" } 

如果條件是‘不’用關鍵詞搜索‘始終是’和‘男孩’的結果將是 -

{ "speechtext" : "I am a girl." } 

我已經解決了'或'條件,如下所示。

db.getCollection('speech').find({"speechtext" : { "$regex" : "Always be|boy"}}) 

我想查詢'和',而不是'條件。

+0

請不要混淆'_id'值的樣本數據和而只是刪除不相關的數據,這些數據也應該儘可能「複製粘貼」,以使其成爲可用和可測試的來源。還要注意你的格式是錯誤的。縮進文本用於代碼,並讓您的段落「文本」不縮進。在離開帖子之前,請務必檢查您的格式是否清晰。最後,如果它真的是一個'正則表達式'問題,那麼就這樣標記它。 –

回答

0

以下是對'或','和'和'不是'按序查詢。

對於或 -

db.getCollection('speech').find({"speechtext" : { "$regex" : "Always be|boy"}}) 

對於和 -

db.getCollection('speech').find({$and:[{"speechtext":{$in:[/'Always be/]}},{"speechtext":{$in:[/boy/]}}]}) 

對於未 -

db.getCollection('speech').find({$or:[{"speechtext":{$nin:[/Always be/]}},{"speechtext":{$nin:[/boy/]}}]}) 
相關問題