जोंस फाइल को मोंगोडब में डालें


82

मैं MongoDB के लिए नया हूं। Windows में MongoDB स्थापित करने के बाद, मैं निम्नलिखित कमांड का उपयोग करके एक सरल json फ़ाइल सम्मिलित करने का प्रयास कर रहा हूं:

C:\>mongodb\bin\mongoimport --db test --collection docs < example2.json

मुझे निम्नलिखित त्रुटि प्राप्त हो रही है:

connected to: 127.0.0.1
Fri Oct 18 09:05:43.749 exception:BSON representation of supplied JSON is too large: code FailedToParse: FailedToParse: Field name expected: offset:43
Fri Oct 18 09:05:43.750
Fri Oct 18 09:05:43.750 exception:BSON representation of supplied JSON is too large: code FailedToParse: FailedToParse: Expecting '{': offset:0
Fri Oct 18 09:05:43.751
Fri Oct 18 09:05:43.751 exception:BSON representation of supplied JSON is too large: code FailedToParse: FailedToParse: Field name expected: offset:42
Fri Oct 18 09:05:43.751
Fri Oct 18 09:05:43.751 exception:BSON representation of supplied JSON is too large: code FailedToParse: FailedToParse: Expecting '{': offset:0
Fri Oct 18 09:05:43.751
Fri Oct 18 09:05:43.752 exception:BSON representation of supplied JSON is too large: code FailedToParse: FailedToParse: Field name expected: offset:44
Fri Oct 18 09:05:43.752
Fri Oct 18 09:05:43.752 exception:BSON representation of supplied JSON is too large: code FailedToParse: FailedToParse: Expecting '{': offset:0
Fri Oct 18 09:05:43.752
Fri Oct 18 09:05:43.752 check 0 0
Fri Oct 18 09:05:43.752 imported 0 objects
Fri Oct 18 09:05:43.752 ERROR: encountered 6 error(s)s

example2.json

{"FirstName": "Bruce", "LastName": "Wayne", 
"Email": "bwayne@Wayneenterprises.com"}
{"FirstName": "Lucius", "LastName": "Fox", 
"Email": "lfox@Wayneenterprises.com"}
{"FirstName": "Dick", "LastName": "Grayson", 
"Email": "dgrayson@Wayneenterprises.com"}

मुझे नए जोंस फ़ाइल को मोंगोडब में आयात करने के लिए क्या करने की आवश्यकता है?


2
यह आवश्यक है कि प्रत्येक दस्तावेज एक नई लाइन पर हो।
सैमुअल ओ'मले

2
आपको (टिक) उत्तर को स्वीकार करना चाहिए जो आपकी समस्या का समाधान करता है।
सुमित कंबोज

जवाबों:


112

उपयोग

mongoimport --jsonArray --db test --collection docs --file example2.json

शायद यह newline वर्णों के कारण गड़बड़ कर रहा है।


यह आदेश उस निर्देशिका से चलाया जाना चाहिए जहाँ 'mongoimport.exe' मौजूद है। JSON फ़ाइल भी उस निर्देशिका में मौजूद होनी चाहिए।
समिश्र अरोरा

जब तक आपको कोई त्रुटि नहीं मिलेगी, कमांड को डेटा / डीबी फ़ोल्डर के अंदर चलाया जाना चाहिए।
ज़िनाब

56

नीचे कमान ने मेरे लिए काम किया

mongoimport --db test --collection docs --file example2.json

जब मैंने Emailप्रत्येक दस्तावेज़ में विशेषता से पहले अतिरिक्त newline चरित्र को हटा दिया ।

example2.json

{"FirstName": "Bruce", "LastName": "Wayne", "Email": "bwayne@Wayneenterprises.com"}
{"FirstName": "Lucius", "LastName": "Fox", "Email": "lfox@Wayneenterprises.com"}
{"FirstName": "Dick", "LastName": "Grayson", "Email": "dgrayson@Wayneenterprises.com"}

37

इसने मेरे लिए काम किया - (मोंगो शेल से)

var file = cat('./new.json');     # file name
use testdb                        # db name
var o = JSON.parse(file);         # convert string to JSON
db.forms.insert(o)                # collection name

वह शांत। ओएस के लिए दुभाषिया के रूप में मोंगो शेल का उपयोग करना और कार्यों के रूप में "बैश" कमांड का उपयोग करना। मुझे यह भी नहीं पता था कि मोंगो इस तरह से फाइल ट्री तक पहुँच सकते हैं। धन्यवाद!
वजह हास

16

JSON फ़ाइल आयात करते समय नीचे दिए गए आदेश का उपयोग करें

C:\>mongodb\bin\mongoimport --jsonArray -d test -c docs --file example2.json

4

निम्नलिखित दो तरीके अच्छी तरह से काम करते हैं:

C:\>mongodb\bin\mongoimport --jsonArray -d test -c docs --file example2.json
C:\>mongodb\bin\mongoimport --jsonArray -d test -c docs < example2.json

यदि संग्रह किसी विशिष्ट उपयोगकर्ता के अंतर्गत हैं, तो आप उपयोग कर सकते हैं -u -p --authenticationDatabase



1

यह समाधान विंडोज मशीन के लिए लागू है।

  1. MongoDB को डेटा स्टोर करने के लिए डेटा निर्देशिका की आवश्यकता होती है। डिफ़ॉल्ट मार्ग है C:\data\db। यदि आपके पास डेटा निर्देशिका नहीं है, तो अपनी C: ड्राइव में एक बनाएँ। (पुनश्च: डेटा \ डीबी का मतलब है कि निर्देशिका 'डेटा' के अंदर 'डीबी' नामक एक निर्देशिका है)

  2. आप इस रास्ते में आयात करना चाहते हैं json रखें C:\data\db\:।

  3. कमांड प्रॉम्प्ट खोलें और निम्न कमांड टाइप करें

    mongoimport --db databaseName --collections collectionName --file fileName.json --type json --batchSize 1

यहाँ,

  • databaseName: आपका डेटाबेस नाम
  • संग्रहनाम: आपका संग्रह नाम
  • फ़ाइलनाम: आपकी json फ़ाइल का नाम जो पथ C: \ data \ db में है
  • अपनी इच्छा के अनुसार बैचसाइज कोई भी पूर्णांक हो सकता है

1
एक गुच्छा मेरी मदद की! धन्यवाद
filipbarak

0

एमएस विंडोज में, मोंगोइमपोर्ट कमांड को सामान्य विंडोज कमांड प्रॉम्प्ट में चलाना होता है, न कि मोंडोडब कमांड प्रॉम्प्ट से।


यूनिक्स के लिए भी ऐसा ही है। mongoimport को एक सामान्य टर्मिनल से mongod के रूप में चलाना पड़ता है।
देल

0

यह मुझे कुछ हफ़्ते पहले हुआ था। मोंगोइमपोर्ट का संस्करण बहुत पुराना था। एक बार जब मैंने नवीनतम संस्करण को अपडेट किया तो यह सफलतापूर्वक चला और सभी दस्तावेजों को आयात किया।

संदर्भ: http://docs.mongodb.org/master/tutorial/install-mongodb-on-ubuntu/?_ga=1.11365492.1588529687.1434379875


0

MongoDB में मोंगू शेल कमांड का उपयोग करके फाइल से जसन सरणी डेटा (सिस्टम / पीसी से विशेष स्थान से) सम्मिलित करें। कमांड के नीचे निष्पादित करते समय, कमांड सिंगल लाइन में होना चाहिए।

var फ़ाइल = cat ('I: /data/db/card_type_authorization.json'); var o = JSON.parse (फ़ाइल); db.CARD_TYPE_AUTHORIZATION.insert (o);

JSON फ़ाइल: card_type_authorization.json

[{
"code": "visa",
"position": 1,
"description": "Visa",
"isVertualCard": false,
"comments": ""
},{
    "code": "mastercard",
    "position": 2,
    "description": "Mastercard",
    "isVertualCard": false,
    "comments": ""
}]

0

अलग से कमांड प्रॉम्प्ट खोलें और जांचें:

C: \ mongodb \ bin \ mongoimport --db db_name - संग्रह संग्रह_नाम <filename.json

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.