কিভাবে রোবঙ্গোঙ্গো ব্যবহার করে মোঙ্গোডিবি থেকে জেএসএন রফতানি করতে পারি


108

সুতরাং আমি সম্পর্কে খুব বেশি জানি না MongoDB। আমি RoboMongoএকটি মঙ্গোডিবিতে যা সংযোগ করেছি তা ব্যবহার করে। আমার যা করা দরকার তা হ'ল - মঙ্গোডিবিতে একটি সংগ্রহ রয়েছে। আমি সেই সংগ্রহ থেকে ডেটা রফতানি করতে চাই যাতে আমি এটি কোনও ফাইলে সংরক্ষণ করতে পারি।

সংগ্রহ থেকে ডেটাটি পাঠ্য হিসাবে খোলার জন্য আমি ইন্টারফেসটি ব্যবহার করেছি এবং একটি Ctrl+ করেছি Aএবং একটি টেক্সট ফাইলে পেস্ট করেছি। তবে, আমি দেখতে পেয়েছি যে সমস্ত ডেটা অনুলিপি করা হয় নি এবং এছাড়াও পাঠ্য ডেটাতে অনেক মন্তব্য ছিল যা জেএসএনকে স্বাভাবিকভাবেই ভেঙে দেয়।

আমি ভাবছি যে রবো মঙ্গোতে এমন কোনও Export As JSONসুবিধা আছে যাতে আমি একটি পরিষ্কার রফতানি করতে পারি।

কোন পয়েন্টার প্রশংসা করা হয়!


আপনি নির্দিষ্ট সংগ্রহ বা সম্পূর্ণ ডিবি রফতানি করতে চান?
রমেশ মুরুগেসান

1
এটি রোবমঙ্গোর বর্তমান বৈশিষ্ট্য নয়, তবে আমি গিথুব ইস্যু সারিতে একটি বৈশিষ্ট্য পরামর্শ যুক্ত করেছি: জেএসএন রফতানি যোগ করুন । একটি সাধারণ পরামর্শ আছে যে আমদানি / রফতানি সংহত করা উচিত , তবে আরও বিস্তারিত / ব্যবহারিক ব্যবহারের ক্ষেত্রে সহায়ক হবে। উদাহরণস্বরূপ, এই সংগ্রহ, একটি অনুসন্ধান কোয়েরি, একটি সমষ্টি পাইপলাইন থেকে JSON রফতানি সমর্থন করা উচিত? বর্তমানে আপনার সর্বোত্তম বিকল্পটি হ'ল স্ট্যান্ডার্ড mongoexportকমান্ড লাইন সরঞ্জামটি ব্যবহার করা ।
স্টেনি

1
@ স্টেনি - আপনার মন্তব্যের জন্য আপনাকে ধন্যবাদ আমি আপনার প্রশ্নের উত্তরে অনুমান করি - গ্রাহকের অভিজ্ঞতার দৃষ্টিকোণ থেকে এটি আসলে কিছু যায় আসে না। বেশিরভাগ ডিবি ইন্টারফেসে, প্রবাহটি হ'ল আপনি কোনও ক্যোয়ারি চালান (ক্রাইটের সাথে বা নাও), ফলাফলের সেট পান। ডান ক্লিক করুন এবং বলুন "এর ফলাফল হিসাবে রফতানি করুন ..." সুতরাং এখানে একই প্রযোজ্য হওয়া উচিত। আমি একটি সম্পূর্ণ সংগ্রহ বা একটি অনুসন্ধান ক্যোয়ারী রফতানি করছি তা বিবেচনা করে না। ফলাফল যদি প্যানেলে প্রদর্শিত হতে পারে তবে তা রফতানিযোগ্য হওয়া উচিত।
পরিবর্তনশীল

1
কেবল আপনি এটি করতে পারেনmongoexport --uri='mongodb://someUser@mongodb0.example.com:27017/marketing' --collection=contacts --out=contacts.json
নরেন

উত্তর:


63

আপনি মোংগোডিবি শেল স্ক্রিপ্টেtojson প্রতিটি রেকর্ডটি জেএসএনে রূপান্তর করতে ব্যবহার করতে পারেন ।

রোবো মঙ্গোতে এই স্ক্রিপ্টটি চালান:

var cursor = db.getCollection('foo').find({}, {});
while(cursor.hasNext()) {
    print(tojson(cursor.next()))
}

এটি JSON- এর মতো অ্যারে হিসাবে সমস্ত ফলাফল মুদ্রণ করে।

ফলাফলটি আসলেই জেএসএন নয়! কিছু প্রকারের তারিখ এবং অবজেক্ট আইডি যেমন জাভাস্ক্রিপ্ট ফাংশন কল হিসাবে মুদ্রিত হয়, যেমন ISODate("2016-03-03T12:15:49.996Z")

বড় রেজাল্ট সেটের জন্য খুব দক্ষ নাও হতে পারে তবে আপনি ক্যোয়ারিকে সীমাবদ্ধ করতে পারেন। বিকল্পভাবে, আপনি ব্যবহার করতে পারেন mongoexport


3
এটি বৈধ জাসনকে আউটপুট দেয় না। স্রেফ জসন-সিরিয়ালাইজড রেকর্ডগুলি একের পর এক
রুक्स

অনেকগুলি ব্যবহারের ক্ষেত্রে, tojson(db.getCollection(...).find(...)["_batch"])সার্ভার থেকে প্রাপ্ত বর্তমান ব্যাচের সম্পূর্ণতা আউটপুট ব্যবহার করতে পারেন ।
যুবাল

@ ইউভাল আপনার আক্ষরিক অর্থ ["_batch"]? কীভাবে এটি ব্যবহার করবেন আপনি একটি উদাহরণ দিতে পারেন? আমি এটি রোবো 3 টি 1.2 টি দিয়ে চেষ্টা করেছি, তবে এটি কেবল "স্ক্রিপ্ট সফলভাবে কার্যকর হয়েছে, তবে দেখানোর কোনও ফলাফল নেই"।
ফ্লোরিয়ান শীতকাল

7
@ ফ্লোরিয়ান উইন্টার এটি প্রায় চারপাশে ফিডিং থেকে এলোমেলো অনুসন্ধান থেকে এসেছে। একটি ভাল সমাধান হয় tojson(db.getCollection(...).find(...).toArray())
যুবলাল

@ ইউভাল সুন্দর! এটি তখন সবচেয়ে সহজ সমাধান, আমার চেয়ে অনেক ভাল। একটি উত্তর হিসাবে এটি পোস্ট বিবেচনা করুন। (বা আমার সম্পাদনা করুন তবে তারপরে আপনার প্রাপ্য সমস্ত ক্রেডিট আমি পেয়ে যাব, যা কিছুটা অন্যায় হবে ...)
ফ্লোরিয়ান শীত

58

একটি দ্রুত এবং নোংরা উপায়: কেবল আপনার কোয়েরিটি লিখুন db.getCollection('collection').find({}).toArray()এবং ডান ক্লিক করুন Copy JSON। আপনার পছন্দসই সম্পাদকটিতে ডেটা আটকান।

এখানে চিত্র বর্ণনা লিখুন


4
ঝরঝরে! Robo3t এ রফতান কার্যকারিতার অভাব বিবেচনা করে মোটেও নোংরা নয়। অন্যান্য প্রস্তাবিত সমাধানগুলির সাথে তুলনা করে ছোট সেট ডেটার জন্য অনেক সহজ।
ইলিয়া লুজানিন

30

রোবমঙ্গোর শেল কার্যকারিতা সমস্যার সমাধান করবে। আমার ক্ষেত্রে আমার CSV ফর্ম্যাট হিসাবে কয়েকটি কলাম দরকার।

var cursor = db.getCollection('Member_details').find({Category: 'CUST'},{CustomerId :1,Name :1,_id:0})

while (cursor.hasNext()) {
    var record = cursor.next();   
    print(record.CustomerID + "," + record.Name)
}

Output : -------

334, Harison
433, Rechard
453, Michel
533, Pal

1
এই স্ক্রিপ্টটির আউটপুট স্থানীয়ভাবে সিএসভিতে রবমোঙ্গো শেলের মধ্যে লেখা সম্ভব?
xxxvincxxx

এটি আমাকে দেয় "স্ক্রিপ্টটি সফলভাবে সম্পাদিত হয়েছে, তবে দেখানোর মতো কোনও ফলাফল নেই"
শানিকা এডিরিভিরা

ত্রুটি: লাইন 10: অ্যাসাইনমেন্টে অবৈধ বাম-হাত
ইউজেন সানিক

19

সেখানে কয়েকটি মোঙ্গোডিবি জিইউআই রয়েছে, তাদের মধ্যে কয়েকটি ডেটা রফতানির জন্য অন্তর্নির্মিত সমর্থন করেছে। আপনি http://mongodb-tools.com এ মঙ্গোডিবি জিইআই'র একটি বিস্তৃত তালিকা পাবেন

আপনি আপনার প্রশ্নের ফলাফল রফতানি করার বিষয়ে জিজ্ঞাসা করেছেন, এবং পুরো সংগ্রহ রফতানি করার বিষয়ে নয়। দিন 3T MongoChef MongoDB গুই করে দেখুন, এই সরঞ্জাম আপনার নির্দিষ্ট ব্যবহারের ক্ষেত্রে জন্য সমর্থন আছে।


স্টুডিও 3 টি সম্পূর্ণ প্রত্যাশার চেয়ে সহজ কাজটি করেছে! : +1:
ভিনিল

16

আপনি কি স্প্রেডশিটের মতো "ফাইলের কাছে রফতানি" করবেন? একটি .csv পছন্দ?

আইএমও এটি রোবো 3 টি (পূর্বে রোবঙ্গোঙ্গো) এ করার সবচেয়ে সহজ উপায়:

  1. রোবো 3 টি জিইউয়ের উপরের ডানদিকে একটি "পাঠ্য মোডে ফলাফল দেখুন" বোতাম রয়েছে, এটিতে ক্লিক করুন এবং সমস্ত কিছু অনুলিপি করুন

  2. এই ওয়েবসাইটে সবকিছু আটকান: https://json-csv.com/

  3. ডাউনলোড বোতামটি ক্লিক করুন এবং এখন আপনার কাছে এটি একটি স্প্রেডশিটে রয়েছে।

আশা করি এটি কাউকে সহায়তা করে, যেমন আমি ইচ্ছুক রবো 3 টি রফতানি করার ক্ষমতা রাখে


খুব সহজ, আপনাকে ধন্যবাদ
Tính Ngô Quang

11

শেলটিতে এই কমান্ডটি চালাবেন না, স্থানধারকগুলি প্রতিস্থাপন করে আপনার ডাটাবেসের নাম, সংগ্রহের নাম এবং ফাইলের নাম সহ কমান্ড প্রম্পটে এই স্ক্রিপ্টটি প্রবেশ করুন ..

mongoexport --db (Database name) --collection (Collection Name) --out (File name).json

এটা আমার জন্য কাজ করে.


8

আমার মনে হয় না রোবমঙ্গোর এমন বৈশিষ্ট্য রয়েছে। সুতরাং আপনি নির্দিষ্ট সংগ্রহের জন্য মঙ্গোএক্সপোর্ট হিসাবে আরও ভালভাবে মঙ্গোদব ফাংশনটি ব্যবহার করুন।

http://docs.mongodb.org/manual/reference/program/mongoexport/#export-in-json-format

আপনি যদি ব্যাকআপ সমাধানের সন্ধান করেন তবে এটি ব্যবহার করা ভাল

mongodump / mongorestore

5

আনিসের উত্তরটি প্রসারিত করে, আমি চাইছিলাম যে কোনও প্রবন্ধে স্বয়ংক্রিয়ভাবে সমস্ত ক্ষেত্রের আউটপুট তৈরির জন্য প্রিন্ট স্টেটমেন্টের মধ্যে সেগুলি সংজ্ঞায়িত করতে আমি কিছু আবেদন করতে পারি। এটি সম্ভবত সরল করা যেতে পারে তবে এটি দ্রুত এবং নোংরা কিছু যা দুর্দান্ত কাজ করে:

var cursor = db.getCollection('foo').find({}, {bar: 1, baz: 1, created_at: 1, updated_at: 1}).sort({created_at: -1, updated_at: -1});

while (cursor.hasNext()) {
    var record = cursor.next();
    var output = "";
    for (var i in record) {
      output += record[i] + ",";
    };
    output = output.substring(0, output.length - 1);
    print(output);
}


2

একটি রোবমঙ্গো শেল স্ক্রিপ্ট ব্যবহার করা:

//on the same db
var cursor = db.collectionname.find();

while (cursor.hasNext()) {
    var record = cursor.next();   
    db.new_collectionname.save(record);
}

মোংডব এর রফতানি এবং আমদানি কমান্ড ব্যবহার করে

আপনি --jsonArrayআপনার mongoexportকমান্ডে প্যারামিটার / পতাকা যোগ করতে পারেন, এটি একক জসন অ্যারের হিসাবে ফলাফলটি রফতানি করে।

তারপরে --jsonArrayআমদানি করার সময় পতাকাটি আবার নির্দিষ্ট করুন ।

অথবা ফাইলের সূচনা এবং শেষ অ্যারে বন্ধনীগুলি [] সরিয়ে ফেলুন, তারপরে আপনার পরিবর্তিত ও রফতানি হওয়া ফাইলটি পতাকা mongoimportছাড়াই কমান্ডের সাথে আমদানি করবে --jsonArray

রফতানির জন্য এখানে আরও: https://docs.mongodb.org/manual/references/program/mongoexport/#cmdoption--jsonArray

এখানে আমদানি করুন: https://docs.mongodb.org/manual/references/program/mongoimport/#cmdoption--jsonArray


1

আমার এই একই সমস্যা ছিল এবং রোবমঙ্গোতে স্ক্রিপ্ট চলমান (রোবো 3 টি 1.1.1) মানগুলি অনুলিপি করার অনুমতি দেয় না এবং কোনও রফতানি বিকল্পও ছিল না। আমি এটি অর্জন করার সর্বোত্তম উপায়টি হ'ল মঙ্গোএক্সপোর্ট ব্যবহার করা, যদি মঙ্গোডব আপনার লোকাল এ ইনস্টল করা থাকে তবে আপনি কোনও সার্ভারের ডাটাবেসে সংযোগ করতে এবং ডেটা উত্তোলনের জন্য মঙ্গোএক্সপোর্ট ব্যবহার করতে পারেন

রিমোট সার্ভারে ডেটা এবং সিএসভি আউটপুট ফাইলের সাথে সংযোগ স্থাপন করতে, আপনার কমান্ড লাইনে নিম্নলিখিত মঙ্গোএক্সপোর্ট চালান

mongoexport --host HOSTNAME --port PORT --username USERNAME --password "PASSWORD" --collection COLLECTION_NAME --db DATABASE_NAME --out OUTPUTFILE.csv --type=csv --fieldFile fields.txt

ফিল্ডফাইলে: পছন্দসই কলামগুলি বের করতে সহায়তা করে, উদাহরণস্বরূপ: fields.txt এর বিষয়বস্তু ঠিক হতে পারে:

ব্যবহারকারী আইডি

কেবলমাত্র 'ইউজারআইডি' কলামের মানগুলি বের করতে

রিমোট সার্ভারে ডেটা, জসন আউটপুট ফাইল:

mongoexport --host HOST_NAME --port PORT --username USERNAME --password "PASSWORD" --collection COLECTION_NAME --db DATABASE_NAME --out OUTPUT.json

এটি জসন ফাইলে সমস্ত ক্ষেত্র নিষ্কাশন করে

লোকালহোস্টের ডেটা (মংডোব লোকালহোস্টে চলমান হওয়া উচিত)

mongoexport --db DATABASE_NAME --collection COLLECTION --out OUTPUT.json

তথ্যসূত্র: https://docs.mongodb.com/manual/references/program/mongoexport/#use


1

সমাধান:

mongoexport --db test --collection traffic --out traffic.json<br><br>

এখানে চিত্র বর্ণনা লিখুন

যেখানে:
ডাটাবেস -> মক-সার্ভার
সংগ্রহের নাম -> api_defs
আউটপুট ফাইলের নাম -> চাইল্ডকোরআরেক্সেস্ট.জসন


1

ক্যোরি কার্যকর করার জন্য প্রস্তুত জেনারেটর লোকদের জন্য ফ্লোরিয়ান শীতের উত্তরের একটি বর্ধন ।

dropএবং insertManyকোয়েরি ব্যবহার করে cursor:

{
    // collection name
    var collection_name = 'foo';

    // query
    var cursor = db.getCollection(collection_name).find({});

    // drop collection and insert script
    print('db.' + collection_name + '.drop();');
    print('db.' + collection_name + '.insertMany([');

    // print documents
    while(cursor.hasNext()) {
        print(tojson(cursor.next()));

        if (cursor.hasNext()) // add trailing "," if not last item
            print(',');
    }

    // end script
    print(']);');
}

এর ফলস্বরূপ হবে:

db.foo.drop();
db.foo.insertMany([
{
    "_id" : ObjectId("abc"),
    "name" : "foo"
}
,
{
    "_id" : ObjectId("xyz"),
    "name" : "bar"
}
]);

0
  1. আপনার অনুসন্ধান করুন
  2. জেএসএন মোডে বোতাম দেখার ফলাফলটি পুশ করুন
  3. কথায় তে ফলাফল কপি
  4. শব্দ থেকে ফলাফল মুদ্রণ

আমার নথিতে যখন আমার তারিখ থাকে তখন এটি আইএসওডেট উপাদানগুলি দেয় যা বৈধ জেসন ফর্ম্যাট নয়।
কনস্টান্টিনো ক্রোনম্বার্গার

1
আপনি কেন একটি ডেটাবেস এক্সপোর্ট সঞ্চয় করতে একটি ওয়ার্ড ডকুমেন্ট ব্যবহার করবেন? এবং বিশ্বে কেন কেউ ডাটাবেস রফতানি মুদ্রণ করতে চাইবে?
মাস্ক

@ মেস্ক 🤣🤣🤣🤣
চার্লি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.