2010-07-22 20 views
27

के साथ सरणी तत्वों की क्वेरी करना मैं उन चिकनीताओं से कैसे पूछ सकता हूं जिनमें सेब है? आप बस नीचे दिए गए क्वेरी MongoDB बहुत चालाक यह पता लगाने की तुम क्या करने की कोशिश कर रहे है चलाते हैं (नीचे 3 दस्तावेजों के साथ एक संग्रह है)मोंगो

_id => 1 
name => 'best smoothie' 
ingredients => Array 
    (
     [0] => apple 
     [1] => raspberry 
     [2] => orange 
     [3] => banana 
    ) 
_id => 2 
name => 'summer smoothie' 
ingredients => Array 
    (
     [0] => lemon 
     [1] => mint 

    ) 
_id => 3 
name => 'yogurt smoothie' 
ingredients => Array 
    (
     [0] => apple 
     [1] => blueberry 

    ) 

उत्तर

47

{ ingredients: "apple" } 

मोंगो देखेंगे कि सामग्री एक सूची है और केवल उन दस्तावेजों को लौटाती है जिनमें उस सूची में "सेब" होता है।

+1

धन्यवाद बहुत, अनुमान नहीं था कि यह होगा:

db.collection.find({ field: { $gt:0, $lt:2 } });

एक दस्तावेज है कि निम्नलिखित फ़ील्ड से मेल खाएगी यह आसान xD – Gigala

-5

लोग चिकनी के लिए स्केलेबल एप्लिकेशन क्यों लिखते हैं?

db.find ({"सामग्री": {$ इन: "सेब"}});

+2

हम उन्हें प्यार करते हैं :) – Devrim

+5

यह एक अवैध क्वेरी है। मूल्य में $ एक सरणी होना चाहिए। उदाहरण के लिए: '' '{{घटक": {$ इन: ["सेब", "दालचीनी", "चीनी"]}} '' जांच करेगा कि घटक फ़ील्ड में 3 सूचीबद्ध मूल्यों में से एक है या नहीं । –

-2

documentation से:

नोट: यदि केवल एक आइटम से मेल खाता है सरणियों युक्त फील्ड्स सशर्त ऑपरेटर, मेल खाते हैं।

इसलिए, निम्न क्वेरी:

{ field: [-1,3] }

संबंधित मुद्दे