2012-01-05 73 views
1

這裏完全是mongo的新功能。Mysql INSTR在mongodb中運行如下

我已經在我的MySQL表的以下字段:

id (BIGINT), text (LONGTEXT) #this would contain a long description 

我希望我的項目從MySQL切換到MongoDB的,但在此之前我這樣做,存在需要解決的非常關鍵的查詢。

我當前的查詢查找描述中的各種術語並返回所有的id,例如

select id from <table> where instr(<table>.text, 'value') or instr(<table>.text, 'value2) 

這是否可能在Mongo中重新創建?如果是的話如何?現在使用$或$ in似乎我需要在文檔的某種數組中具有這些特定值。

回答

0

MongoDB本身不支持全文搜索。

你可以使用正則表達式,但它會很慢(由於沒有使用索引,除非它們是植根的)。

查詢會是這樣:

db.collection.find({ $or: [{description: /value1/}, {description: /value2/}] })

你可以做一些預處理,以每個字插入關鍵字的搜索排列,但如果文字是很長的,你可能不希望走這條路。

+0

謝謝您的回覆。所以這有點讓我走了WTF的道路必須有一些東西......我發現了一個很好的討論http://stackoverflow.com/questions/5453872/full-text-search-in-nosql-databases,我認爲我要結帳燈籠和獅身人面像。 – Nertim 2012-01-05 18:11:29

+0

很酷,祝你好運。 – 2012-01-05 19:05:45