2012-06-05 11 views
10
advertisers = db.dbname.find('my query which returns things correctly'); 

मुझे एहसास है कि यह संग्रह की सूची में एक कर्सर देता है।मोंगोडीबी - समझ नहीं आता कि कर्सर के साथ संग्रह के माध्यम से लूप कैसे करें

लेकिन मुझे यकीन नहीं है कि उनके माध्यम से कैसे लूप करें और प्रत्येक संग्रह प्राप्त करें।

मैं कुछ इस तरह की कोशिश करना चाहते:

advertisers.each(function(err, advertiser) { 
    console.log(advertiser); 
}); 

लेकिन वह काम नहीं करता। लेकिन मुझे ऑनलाइन खोज से नहीं देखा कि यह वास्तव में सरल जावास्क्रिप्ट के साथ कैसे काम करता है।

तब मैं इस कोड है:

var item; 

if (advertisers != null) 
{ 
    while(advertisers.hasNext()) 
    { 
     item = advertisers.next(); 
    } 
} 

और यह इस त्रुटि देता है: SyntaxError: syntax error (shell):1

मदद की बहुत सराहना!

धन्यवाद!

उत्तर

31

त्वरित और गंदी तरीका है:

items.forEach(function(item) { 
    /* do something */ 
}); 
+0

thanks..I कि कोशिश की थी, लेकिन किसी कारण से मैं इस तरह एक त्रुटि हो रही थी: मंगल जून 5 16:31 संग्रह के माध्यम से पाश के लिए रास्ता फिर से toArray कर्सर की विधि का उपयोग किया जाता है : 08 सिंटेक्स त्रुटि: वाक्यविन्यास त्रुटि (खोल): 1 मंगल जून 5 16:31:08 बेजोड़ अपवाद: त्रुटि है अगला: झूठी – Genadinik

+0

मेरे पास हैक्स्ट पर() नहीं है। –

+0

@ जस्टिंग मैंने कोशिश की, लेकिन यह अभी भी किसी कारण से काम नहीं कर सका। – Genadinik

0

जब से तुम ढेर नहीं दिखा रहे हैं तो मुझे लगता है आपकी समस्या पैरामीटर आप गुजर रहे हैं:

var item; 
var items = db.test.find(); 
while(items.hasNext()) { 
    item = items.next(); 
    /* Do something with item */ 
} 

वहाँ भी अधिक कार्यात्मक है खोजने के लिए, इस पैरामीटर को जावास्क्रिप्ट ऑब्जेक्ट होना चाहिए, इसलिए:

var query = { 
    key: 'my query which returns things correctly' 
} 

advertisers = db.dbname.find(query); 
advertisers.each (function(err, doc){ 

    //.... error code not included..... 
    console.log(doc); 
}); 
1

एक मो

var results = db.getCollection('posts').find({}).toArray(); 
 

 
for(var i = 0; i <= results.length -1; i++) 
 
{ 
 
    print("Author is:" + results[i].Author); 
 
}

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