MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

एक सरणी में आइटम्स की विशेषता पर MongoDB मल्टीकी इंडेक्स कैसे बनाएं .NET ड्राइवर

यह एक उदाहरण है कि इसे C#

. के साथ कैसे करें
var indexDefinition = Builders<FooDocument>.IndexKeys.Combine(
    Builders<FooDocument>.IndexKeys.Ascending(f => f.Key1),
    Builders<FooDocument>.IndexKeys.Ascending(f => f.Key2));

await collection.Indexes.CreateOneAsync(indexDefinition); 

अपडेट करें

सरणी के भीतर इंडेक्स के संबंध में, जो मैं ढूंढने में सक्षम था, वह इंडेक्स के रूप में "-1" का उपयोग करना है जब आप अपनी इंडेक्स कुंजी बनाते हैं। जैसा कि मैं जीथब स्रोत कोड से समझता हूं, प्रश्नों के निर्माण के मामले में एक वैध विकल्प है।

var indexDefinition = Builders<FooDocument>.IndexKeys.Combine(
    Builders<FooDocument>.IndexKeys.Ascending(f => f.Key1),
    Builders<FooDocument>.IndexKeys.Ascending(f => f.Key2[-1].Key));

await collection.Indexes.CreateOneAsync(indexDefinition); 

"-1" साइड मोंगोडब सी# ड्राइवरों में एक हार्डकोडेड स्थिरांक है जिसका अर्थ है "$" (सबूत ) तो यह कोड इंडेक्स बनाने की कोशिश करेगा:

{ "Key1": 1, "Key2.$.Key": 1 }

जो डेटाबेस से जानकारी पूछने के लिए ठीक है, लेकिन अनुमति नहीं है (एक अपवाद फेंक देगा "इंडेक्स कुंजी में एक अवैध फ़ील्ड नाम है:फ़ील्ड नाम '$' से शुरू होता है") इंडेक्स में उपयोग करने के लिए। तो मुझे लगता है कि इसे काम करने के लिए इसे मोंगोडब ड्राइवरों में बदला जाना चाहिए। "-2" जैसा कुछ मतलब खाली ऑपरेटर है। उस स्थिति में हम उपयोग कर सकते हैं

var indexDefinition = Builders<FooDocument>.IndexKeys.Combine(
    Builders<FooDocument>.IndexKeys.Ascending(f => f.Key1),
    Builders<FooDocument>.IndexKeys.Ascending(f => f.Key2[-2].Key));

await collection.Indexes.CreateOneAsync(indexDefinition); 

जो सूचकांक उत्पन्न करेगा जैसे:

{ "Key1": 1, "Key2.Key": 1 }

इसलिए मूल रूप से मुझे नहीं लगता कि मोंगो सी # ड्राइवरों को बदले बिना शुद्ध लिंक के साथ आप जो इंडेक्स बनाना चाहते हैं उसे बनाना संभव है।

तो मुझे लगता है कि आपका एकमात्र विकल्प ऐसा करना है, फिर भी सी # लेकिन लिंक के बिना

await collection.Indexes.CreateOneAsync(new BsonDocument {{"name", 1}, {"bars.key", 1}});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. जावा के माध्यम से मोंगो जैसे क्वेरी (JSON) निष्पादित करना

  2. एक मोंगोडब दस्तावेज़ में सभी सरणी तत्वों को एक निश्चित मूल्य में कैसे बदलें?

  3. MySQL से MongoDB - एक एडमिन चीट शीट

  4. MongoDB और Google क्लाउड फ़ंक्शंस VPC पीयरिंग?

  5. पीएचपी घातक त्रुटि:कक्षा 'मोंगोडेट' नहीं मिली