2012-05-21 5 views
5

मैं अपने MongoDB क्वेरी और अपने वेब नोड के साथ किए गए पृष्ठ पर इस परिणाम प्रदर्शित करने के लिए सक्षम होने के लिए चाहते हैं ... अभी मैं mongojs ड्राइवर का उपयोग कर रहा है - मैं ड्राइवर बहुत डीबी में डेटा डालने के लिए बहुत अच्छा मिल गया है - वाक्यविन्यास मोंगो खोल के समान है और मैं कोड को अपने नोड ऐप में सही रख सकता हूं। यह कार्य ... वेबपृष्ठ पर या कंसोल पर भी क्वेरी के परिणाम दिखा रहा है, यह बहुत मुश्किल साबित हुआ है। मेरे कोड के प्रासंगिक भाग यहां दिए गए हैं और मैंने क्या प्रयास किया है।मैं एक मोंगोडीबी क्वेरी को एक स्ट्रिंग के रूप में कैसे कैप्चर कर सकता हूं और इसे अपने नोड जेएस पेज में प्रदर्शित कर सकता हूं (mongojs ड्राइवर का उपयोग करके)?

var databaseUrl = "test"; // "username:[email protected]/mydb" 
var collections = ["graph1"] 
var db = require("mongojs").connect(databaseUrl, collections); 

console.log(db.graph1.find()); 

मैं एक संग्रह ग्राफ 1 कहा जाता है बना दिया है और मोंगो में इस पैदावार परिणाम का संकेत। नोट ... मैं इसे HTML में प्रदर्शित करना चाहता हूं ... लेकिन अगर मैं इसे कंसोल पर प्रिंट करने के लिए प्राप्त कर सकता हूं तो मैं स्पोक करता हूं, मैं इसे अपने HTML में प्राप्त कर सकता हूं।

यह वर्तमान में इस आउटपुट:

{_oncursor: { get: [Function], put: [Function] } } 

मैं वास्तव में क्या चाहते हैं के लिए प्रोटोटाइप के कुछ प्रकार है, जो इस:

db.graph1.find({}, function(err, result){ 
    if (err || !result) console.log(" an error has occurred"); 
    else { 
    console.log(result); 
    } 
    }); 

कंसोल लॉग:

{ "x" : "0", "y" : "1343725568", "_id" : ObjectId("4fba6....") } 

उत्तर

2

इस प्रयास करें कि आप db.graph1.find() वापसी मान प्रिंट कर रहे थे जो इसके फ़ंक्शन प्रोटोटाइप है। यह कुछ भी उपयोगी नहीं होगा क्योंकि यह एक असीमित कार्य है।

db.graph1.find({ //what you want to search for here }, callback); 

    function callback(result_from_mongo) { 
    // do stuff here with result_from_mongo 
    } 
+0

धन्यवाद! यह काम! – PinkElephantsOnParade

1

विरासत के लिए, हर किसी को आगे कहा कि केवल समय आप अपनी क्वेरी परिणामों में हेरफेर कर सकते हैं पता होना चाहिए: डेटा यह पुन: प्राप्त करता साथ useable काम करने के लिए एक ही रास्ता एक कॉलबैक जिसमें डेटा संभाल लेंगे पारित करने के लिए है कॉलबैक में ... इसलिए इसे बाद में बेवकूफ बनाने के लिए एक var को एक सेटिंग में सेट नहीं किया गया, केवल कॉलबैक के भीतर) - =।

क्वेरी संकट के बिना एक स्ट्रिंग परिणाम बनाने के लिए निम्नलिखित का उपयोग करें। यह मानक पुस्तकालय सामान .:

var results_not_ugly_or_messed_up = (JSON.stringify(result)); 

आप यहूदी बस्ती हो सकता है और कॉलबैक के बाहर अपने परिणामों का उपयोग करना चाहते हैं, तो आप हमेशा एक पर्ल/अजगर/श/बल्ला/जो कुछ स्क्रिप्ट अपने "stringified" परिणाम के साथ कह सकते हैं है (इस उदाहरण में, results_not_ugly_or_messed_up) इसे फ़ाइल में संग्रहीत करने के लिए पैरामीटर के रूप में, आदि को पढ़ने के लिए, और फिर कृपया उपयोग करें।

एक पूर्ण वास्तविक जीवन उदाहरण के लिए:

db.newguestbook.find({"Name" : /[Aa]/ },[],function(err,p) //newguestbook is a collection I have  
//you will need to change that unless you make a collection called newguestbook 
{ 
    cursor = p; 
    console.log(cursor); 
    console.log(JSON.stringify(cursor))); //We have a nice string, see? 
    var exec = require('child_process').exec; 
    exec("perl writetofile.pl " + JSON.stringify(cursor) , function(err, 
    stdout, stderr) 
    { 
     console.log("Perl run to store this result in a file"); 
    }); 

}); 
} 
संबंधित मुद्दे

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