0
我想從使用正則表達式的mongodb中獲取結果。例如,在搜索用戶名amitverma
時,如果我在搜索框中輸入amit
,我希望能夠獲得該結果。在Mongodb中使用正則表達式搜索查詢
我有搜索周圍的上網解決方案,大家似乎都明白了寫這樣的代碼工作:
var searchterm = req.body.name;
collection.find(
{ "username": new RegExp('/.*' + searchterm + '.*/') },
[ 'username', 'status' ],
function(e, docs){
console.log(e);
console.log(docs);
res.writeHead(200, {'content-type': 'text/json' });
res.write(JSON.stringify({ 'docs' : docs }));
res.end('\n');
}
);
我仍然無法得到它的工作。它給了我一個空陣列。此外,替換{username: searchterm}
到{ "username": new RegExp('/.*' + searchterm + '.*/') }
後,我甚至不能得到字符串amitverma
的結果,這意味着這個正則表達式的東西是失敗的。
呵呵。對不起,沒有澄清。我在問爲什麼它不適合我?我需要做些什麼才能使它工作? – amit
考慮到正則表達式在您的情況下區分大小寫。以及在您的收藏中顯示文件的例子。記住正則表達式可能非常慢,所以不要信任外部客戶端來定義它 - 有人可能會用非常繁重的regexp請求發送垃圾郵件,這可能會導致服務器崩潰。 – moka