Mongoose / MongoDB में मल्टीफ़िल्ड इंडेक्स बनाना


93

मैं यह जानने की कोशिश कर रहा हूं कि मोंगोसेज़ में मल्टी-फील्ड इंडेक्स बनाने के लिए कोई फायदा नहीं हुआ। विशेष रूप से मेरे पास दो क्षेत्र हैं जिन्हें अनुक्रमित और अद्वितीय बनाने की आवश्यकता है। एक उदाहरण मैंगोज़ स्कीमा क्या है जो एक साथ दो क्षेत्रों को अनुक्रमित करता है?

जवाबों:


196

आप indexअपनी Schemaवस्तु पर विधि को करने के लिए कहते हैं जैसा कि यहाँ दिखाया गया है । आपके मामले के लिए यह कुछ इस तरह होगा:

mySchema.index({field1: 1, field2: 1}, {unique: true});

2
इसे मोंगोडब में कंपाउंट इंडेक्स कहा जाता है। इसलिए यह फ़ील्ड 1 और फ़ील्ड 1 + फ़ील्ड 2 के रूप में अनुक्रमित करता है। तो यह फ़ील्ड 1 के अनुसार पहली अनुक्रमणिका है और फिर फ़ील्ड 1 के अंदर फ़ील्ड 2 के संबंध में
केतन घुमटकर

1
फ़ील्ड 1 के बाद 1 का क्या अर्थ है: और फ़ील्ड 2:?
डेमन युआन

9
@DamonYuan वे अनुक्रम में फ़ील्ड्स के क्रम को सेट करते हैं। 1आरोही है, -1अवरोही होगी।
जॉनीएचके

1
@KetanGhumatkar यह उस क्रम पर आधारित है जिस पर कॉल करने के लिए फ़ील्ड ऑब्जेक्ट में सूचीबद्ध हैं index
जॉनीएचके

2
1और -1 इंडेक्स फ़ील्ड पर आरोही या अवरोही इंडेक्स कुंजी निर्दिष्ट करता है। मुझे डॉक्स http://mongodb.github.io/node-mongodb-native/2.1/tutorials/create-indexes/
थाई हा

11

कंपाउंड इंडेक्स बनाते समय स्कीमा स्तर पर इंडेक्स को परिभाषित करना आवश्यक है।

animalSchema.index({ name: 1, type: -1 });

संदर्भ: http://mongoosejs.com/docs/guide.html#indexes


5
1 और -1 का अर्थ क्या है? मैं इस दस्तावेज में नहीं मिला जिसे आपने संदर्भित किया था। धन्यवाद।
DFB

2
मुझे इस पृष्ठ पर उत्तर मिला: docs.mongodb.org/manual/core/indexes-introduction धन्यवाद!
DFB

0

वैसे, स्वीकृत उत्तर गलत है, https://stackoverflow.com/a/52553550/129300 के अनुसार आपको एकल उद्धरणों में फ़ील्ड नामों को लपेटना चाहिए, अर्थात:

mySchema.index({'field1': 1, 'field2': 1}, {unique: true});

शुभ दिन!


JS में ऑब्जेक्ट कुंजी को तब तक अनअक्लोकेट किया जा सकता है जब तक कि वे वाक्यात्मक रूप से मान्य पहचानकर्ता हों। field1और field2मान्य पहचानकर्ता हैं। field1.fooउदाहरण के लिए नहीं है।
गस

-3
    Following command can be used to create compound index for nested json:
    db.ACCOUNT_collection.createIndex({"account.id":1,"account.customerId":1},{unique:1}) 
Mongo json structure is like :
{"_id":"648738"
 "account": { 
    "id": "123",
    "customerId": 7879,
    "name": "test"
   ..
   ..

  }
}

मैंने नमूना डेटा के साथ परीक्षण किया है यह पूरी तरह से अपेक्षित रूप से काम कर रहा है।


हम नहीं चाहते हैं कि मैंगोवोस शेल के साथ हम चाहते हैं कि नोड जेएस स्कीमा के साथ
रोहित निषाद
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.