आप एकत्रीकरण ढांचे के साथ यह केवल कर सकते हैं कुछ करना चाहता हूँ, नियमित खोज के साथ नहीं।
db.coll.aggregate({$project:{newField:{$concat:["$field1","$field2"]}}},
{$match:{newField:"value"}}
);
ध्यान दें कि यह बाद से वहाँ MongoDB (अभी तक) की गणना मूल्यों पर अनुक्रमणिका के लिए कोई समर्थन नहीं है, किसी भी अनुक्रमित उपयोग करने में सक्षम नहीं होगा।
आप field1
पर एक सूचकांक है और आप जानते हैं कि कितने वर्ण आप आप इस तरह इस एकत्रीकरण के प्रदर्शन में सुधार कर सकते हैं value
में योगदान के लिए फ़ील्ड 1 की आशा करते हैं:
db.coll.aggregate({$match:{field1:/^val/}},
{$project:{newField:{$concat:["$field1","$field2"]}}},
{$match:{newField:"value"}}
);
जहां val
"मूल्य" का पहला हिस्सा है स्ट्रिंग (आप संस्करण 3.6 के रूप में field1
हालांकि की कम से कम मूल्य से अधिक पात्रों की तुलना नहीं करना चाहिए।
संपादित आपका उपयोग कर खोजने में कर सकते हैं 210 अभिव्यक्ति:
db.coll.find({$expr:{$eq:["value", {$concat:["$field1", "$field2"]}]}})
स्रोत
2014-07-09 19:45:09
बहुत बढ़िया, इस लगभग है कि मैं क्या जरूरत है: मेरे संपादन की जाँच, मैं कैसे बदल सकते हैं एक "इन (सरणी)" में $ मैच? – Deleteman
एनवीएम, ऑपरेटर में $ पाया! – Deleteman
मोंगोडब कुल में चेनिंग वह है जहां यह है! – Rohmer