के मिलान किए गए तत्वों का चयन करें मैं mongoose.js का उपयोग mongodb से पूछताछ करने के लिए कर रहा हूं, लेकिन मुझे लगता है कि मेरी समस्या mongoose.js के लिए विशिष्ट नहीं है।मोंगो डीबी: सबकोलेक्शन
मैं संग्रह में केवल एक रिकॉर्ड है कहते हैं:
var album = new Album({
tracks: [{
title: 'track0',
language: 'en',
},{
title: 'track1',
language: 'en',
},{
title: 'track2',
language: 'es',
}]
})
मैं भाषा क्षेत्र के साथ सभी पटरियों 'एन' के बराबर का चयन करना चाहते, तो मैं दो वेरिएंट की कोशिश की:
Album.find({'tracks.language':'en'}, {'tracks.$': 1}, function(err, albums){
और $ elemMatch प्रक्षेपण के साथ एक ही चीज़ से जुड़ा हुआ है:
Album.find({}, {tracks: {$elemMatch: {'language': 'en'}}}, function(err, albums){
किसी भी मामले में मुझे एक ही परिणाम मिला है:
{tracks:[{title: 'track0', language: 'en'}, {title: 'track1', language: 'en'}]}
क्या मैं गलत कर रहा हूँ:
{tracks:[{title: 'track0', language: 'en'}]}
चयनित album.tracks शीर्षक 'track0' के साथ केवल एक ट्रैक तत्व होते हैं (लेकिन वहाँ दोनों 'track0', 'track1' होनी चाहिए)?
आप कुछ भी गलत नहीं कर रहे हैं, कि अभी जिस तरह उन प्रश्नों काम है - वे केवल पहले मिलान तत्व शामिल हैं। मुझे लगता है कि आप जो चाहते हैं उसे करने के लिए आपको एकत्रीकरण ढांचे का उपयोग करने की आवश्यकता होगी। – JohnnyHK
धन्यवाद, क्या आप मेरी अधिक विशेष युक्ति या कुछ दे सकते हैं? – WHITECOLOR