2010-08-29 17 views
21

मोंगोडीबी लिपियों की मूल बातें क्या हैं?मोंगोडीबी स्क्रिप्ट्स की मूल बातें - कैसे

मुझे लगता है कि स्क्रिप्ट .js साथ खत्म हो जाएगा, और हम इसे mongo try.js

का उपयोग कर चलाए लेकिन अगर मैं try.js में

print(db.foo.find()) 

रख दिया और mongo try.js

का उपयोग यह कहेंगे

MongoDB shell version: 1.6.1 
connecting to: test 
DBQuery: test.foo -> undefined 

और यदि मैं हम ई mongo और प्रकार

> db.foo.find() 
{ "_id" : ObjectId("4c7a73428261000000003a7e"), "a" : 1 } 
> print(db.foo.find()) 
DBQuery: test.foo -> undefined 

टाइपिंग {a : 1} कुछ था मैं डाला द्वारा इंटरैक्टिव खोल पहले का उपयोग कर db.foo.insert({a:1})

MongoDB स्क्रिप्ट करने का उचित तरीके और कैसे एक रूबी irb या अजगर की तरह चीजों को मुद्रित करने के लिए कर रहे हैं क्या IDLE? धन्यवाद। (रूबी के puts a.inspect या p a दोनों a में बाहर a आमतौर पर की पूरी संरचना (सभी चर नाम और मान मुद्रित कर सकते हैं))

alert(db.foo.find()) और console.log(db.foo.find()) या तो काम नहीं करेगा।

+3

मैंने पाया कि मैं चीजों को बाहर 'printjson का उपयोग कर मुद्रित कर सकते हैं ({एचएम: 'हाँ'})' या 'db.foo.find() .forEach (printjson) 'यदि खोल में नहीं है –

उत्तर

36

बाहरी स्क्रिप्ट फ़ाइलों को खोल संदर्भ के बाहर निष्पादित किया जाता है।

db.foo.find() डेटाबेस कमांड केवल एक कर्सर देता है; यह कुछ भी प्रिंट नहीं करता है। जब शेल से कमांड जारी किया जाता है, तो खोल कर्सर को फिर से सक्रिय करेगा और परिणामों को प्रिंट करेगा। जब आदेश बाहरी स्क्रिप्ट फ़ाइल से चलाया जाता है, तो कुछ भी मुद्रित नहीं होता है।

print() कमांड ऑब्जेक्ट के स्ट्रिंग प्रस्तुति को प्रिंट करेगा।

> print(db.foo.find()) 
DBQuery: test.foo -> undefined 

आप क्वेरी के परिणामों को मुद्रित करने की जरूरत है, तो आप अपने स्क्रिप्ट फ़ाइल में कर्सर पुनरावृति और क्या खोल करता है करने के लिए प्रत्येक परिणाम प्रिंट, ठीक उसी प्रकार करना होगा: आपके मामले में, यह कर्सर है

function printResult (r) { 
    print(tojson(r)) 
} 

db.foo.find().forEach(printResult) 
13

एक जेसन ऑब्जेक्ट प्रिंट करने के लिए एक अंतर्निहित फ़ंक्शन है।

फ़ंक्शन कॉल के अंत में .forEach(printjson) संलग्न करें।

db.foo.find().forEach(printjson); 
संबंधित मुद्दे