2013-02-06 19 views
5

मेरे प्रश्न है:एक मोंगोडीबी क्वेरी की निषेध कैसे प्राप्त करें?

db.users.find({"username" : {$regex : ".*substring.*"}}); 
इसके बजाय उपयोगकर्ता नाम है कि 'स्ट्रिंग' को शामिल होने का

, मैं उपयोगकर्ता नाम है कि यह शामिल नहीं है की जरूरत है।

db.test.find({ username: { $not: /substring/ } }); 

की तरह में:

+3

क्या आपने '$ not' ऑपरेटर को आजमाया नहीं है? –

+0

$ महान काम नहीं करता है, धन्यवाद! – Ognjen

उत्तर

5

इस के लिए, आप $ नहीं ऑपरेटर का उपयोग कर सकते

> db.test.insert({ username: "Derick Rethans" }); 
> db.test.insert({ username: "Hannes Magunusson" }); 
> db.test.find({ username: { $not: /ag/ } }); 
{ "_id" : ObjectId("511258b36879ad400c26084f"), "username" : "Derick Rethans" } 

हालांकि, अगर आप पता होना चाहिए कि नियमित अभिव्यक्ति औरके उपयोग $ ऑपरेटर इंडेक्स को इस्तेमाल करने में सक्षम होने से रोकता है। यदि आपको अक्सर यह प्रश्न करने की आवश्यकता है, तो हो सकता है कि आप अपने स्कीमा डिज़ाइन पर एक अच्छा नज़र डालें।