有以下數據:如何在數據庫中搜索本身是MongoDB中搜索字符串的子鍵
>db.abc.insert([{_id:"r"},{_id:"ro"},{_id:"roo"},{_id:"root"},{_id:"rob"}]);
已經知道了關鍵字「根」,需要找到「_id」內容「R ,RO,袋鼠,根」的記錄,我已經試過:
>db.abc.find({_id:{$lte:"root"}});
{ "_id" : "r" }
{ "_id" : "ro" }
{ "_id" : "rob" }
{ "_id" : "roo" }
{ "_id" : "root" }
我並不需要 「搶」,相當於一個PL/SQL語句:
'root' like _id||'%'
關鍵詞可能很長。有什麼好方法,最好是使用索引。
我實際上是一個樹形結構,每個節點都有一個關鍵字。找到所有具有前綴匹配的子節點,然後找到所有父節點,都遇到了這個問題。關鍵字不一定是每個級別增加的字符,因此構建所有可能的值,它會產生大量的不活動關鍵字。我嘗試使用$ where:return substring('root',1,this._id.length)== this._id',但返回[ReferenceError:子字符串未定義] – llx
當然,這些解決方案都不是「理想的「這可能是一個很好的功能添加到MongoDB,絕對值得JIRA我認爲 – Sammaye
@llx這將是一個可怕的查詢,但JavaScript的子字符串是''root'.substring(1,this._id.length)' – Sammaye