2015-11-27 5 views
5

बैश का उपयोग कर एक मोंगोडब में दस्तावेज़ डालने के लिए, मुझे निष्पादित करने के लिए आवश्यक सटीक कोड क्या है। फिलहाल मैं बैश स्क्रिप्ट के माध्यम से mongodb में दस्तावेज़ देखने में सक्षम हूं, लेकिन डालने से काम नहीं होता है।मैं बैश स्क्रिप्ट से mongodb तक दस्तावेज़ कैसे सम्मिलित कर सकता हूं?

उत्तर

8

आप एक जावास्क्रिप्ट फ़ाइल से JavaScript कोड इंजेक्षन कर सकते हैं:

mongo 127.0.0.1/MyDatabase script.js 
script.js साथ

:

var document = { 
    name : "document_name", 
    title : "document_title" 
}; 

db.MyCollection.insert(document); 

या सीधे:

mongo 127.0.0.1/MyDatabase --eval 'var document = {name : "document_name",title : "document_title",};db.MyCollection.insert(document);' 
0

आप के लिए नहीं करना चाहते हैं एक फ़ाइल से स्क्रिप्ट की सेवा या --eval सेशन का उपयोग नहीं (मैं स्रोत के लिए जितना संभव हो उतना बाहरी फ़ाइलें नहीं की कोशिश) अगर आप कई प्रविष्टियों है tion जो मुश्किल हो सकता है पढ़ने के लिए, आप एक bashheredoc

उपयोग कर सकते हैं आप टर्मिनल में टाइप कर सकते हैं:

-bash-4.1$ mongo mongodb://myServerAddress/myDbName <<EOF 
> db.myCollectionName.insert({ 
> name: "doc name", 
> title: "doc title" 
> }) 
> EOF 

परिणाम:

MongoDB shell version v3.4.1 
connecting to: mongodb://myServerAddress/myDbName 
MongoDB server version: 3.0.7 
WARNING: shell and server versions do not match 
WriteResult({ "nInserted" : 1 }) 
bye 
-bash-4.1$ 

आप रखना चाहते हैं यह एक स्क्रिप्ट में, बस > हटाएं जो वास्तव में एक multiline कमांड के लिए संकेत है।

में स्क्रिप्ट उपयोग के लिए, यह नीचे के रूप में किया जाना चाहिए:

#!/usr/bin/env bash 

mongo mongodb://myServerAddress/myDbName <<EOF 
db.myCollectionName.insert({ 
    name: "doc name", 
    title: "doc title" 
}) 
EOF 
संबंधित मुद्दे