को अनदेखा करने वाले दस्तावेज़ों को कैसे ढूंढें, मैं अपने mongodb डेटाबेस में संग्रह पर एक खोज करना चाहता हूं। मेरे संग्रह में, मैं क्षेत्र "नाम" के साथ दस्तावेजों की तरह मान हो सकता है:मोंगोडीबी: मामले संवेदनशील, उच्चारण और प्रतिशत जैसे तर्क (%)
[i] "Palácio Guanabara", "Palácio da Cidade", "फेस्टा Palácio", आदि
जब कोई उपयोगकर्ता "पाला" या "पला" या "पाला" या "पला" जैसी खोज टाइप करें, [i] में उन सभी इन्सेंस को परिणाम सेट बनाना होगा।
मैंने पाया कि MongoDB में मैं खोजों में regex का उपयोग कर सकता है, जैसे:
{ "name": { $regex: new Regex(".*pala.*", "i") } }
ठीक है, इस दृष्टिकोण मामले असंवेदनशील है और SQL ("% pala%") से तर्क की तरह प्रतिशत का उपयोग करें। लेकिन, यह डेटाबेस में रजिस्टर से उच्चारण को नजरअंदाज नहीं करता है। https://docs.mongodb.org/manual/core/index-text/
यह दृष्टिकोण केस संवेदी और लहजे अनदेखा कर सकते हैं:
मैं $ पाठ सूचकांक के साथ एक और विकल्प मिल गया। लेकिन "खोज" एक regex स्वीकार नहीं करता है, इसलिए मैं "% pala%" जैसी चीजें नहीं खोज सकता।
select * from collection where remove_accents(upper(name)) like '%Pala%'
और "Palácio", "Palacio", "Palacio" की तरह नाम के साथ परिणाम देने इस क्वेरी, आदि
जैसा कि यहां बताया गया है http: // stackoverflow।कॉम/प्रश्न/7707671/mongodb-match-accented-characters-as-underlying-character आपकी संभावित सर्वश्रेष्ठ शर्त आपके खोज योग्य स्ट्रिंग के एक असंतुलित संस्करण के साथ एक फ़ील्ड बनाने के लिए है। – joao
धन्यवाद @joao। मैं दिमित्री दृष्टिकोण का उपयोग करूंगा और भविष्य में मैं यह "खोज योग्य" दायर करूंगा। –