MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

केवल गैर-मौजूदा दस्तावेज़ों को कैसे आयात करें?

mongoimport का डिफ़ॉल्ट व्यवहार मौजूदा दस्तावेज़ों को अधिलेखित करना नहीं होना चाहिए:JS शेल में, मैंने "testimport" संग्रह में एक दस्तावेज़ बनाया है

> db.testimport.save({_id:1, x:"a"})
> db.testimport.find()
{ "_id" : 1, "x" : "a" }
> 

यहाँ फ़ाइल import.json की सामग्री है। इसमें 2 दस्तावेज़ होते हैं, एक अद्वितीय _id के साथ, और दूसरा डुप्लिकेट _id वाला।

import.json
{_id:1, x:"b"}
{_id:2, x:"b"}

एक नई टर्मिनल विंडो में, mongoimport चलाया जाता है:

$ ./mongoimport -d test -c testimport import.json -vvvvv 
Wed Apr  4 19:03:48 creating new connection to:127.0.0.1
Wed Apr  4 19:03:48 BackgroundJob starting: ConnectBG
Wed Apr  4 19:03:48 connected connection!
connected to: 127.0.0.1
Wed Apr  4 19:03:48 ns: test.testimport
Wed Apr  4 19:03:48 filesize: 29
Wed Apr  4 19:03:48 got line:{_id:1, x:"b"}
Wed Apr  4 19:03:48 got line:{_id:2, x:"b"}
imported 2 objects
$

भले ही mongoimport का आउटपुट कहता है कि दो ऑब्जेक्ट आयात किए गए थे, _id:1 वाले दस्तावेज़ को अधिलेखित नहीं किया गया है।

> db.testimport.find()
{ "_id" : 1, "x" : "a" }
{ "_id" : 2, "x" : "b" }
>

यदि --upert ध्वज का उपयोग किया जाता है, तो _id:1 वाले दस्तावेज़ को अद्यतन किया जाएगा:

$ ./mongoimport -d test -c testimport import.json -vvvvv --upsert
Wed Apr  4 19:14:26 creating new connection to:127.0.0.1
Wed Apr  4 19:14:26 BackgroundJob starting: ConnectBG
Wed Apr  4 19:14:26 connected connection!
connected to: 127.0.0.1
Wed Apr  4 19:14:26 ns: test.testimport
Wed Apr  4 19:14:26 filesize: 29
Wed Apr  4 19:14:26 got line:{_id:1, x:"b"}
Wed Apr  4 19:14:26 got line:{_id:2, x:"b"}
imported 2 objects
$

JS शेल में, हम देख सकते हैं कि _id:1 वाले दस्तावेज़ को अपडेट कर दिया गया है:

> db.testimport.find()
{ "_id" : 1, "x" : "b" }
{ "_id" : 2, "x" : "b" }
>

क्या यह वह व्यवहार नहीं है जिसका आप अनुभव कर रहे हैं? उपरोक्त संस्करण 2.1.1-पूर्व के साथ परीक्षण किया गया था, लेकिन मुझे विश्वास नहीं है कि कुछ समय के लिए mongoimport कोड बदल गया है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मैं विशेष $cmd संग्रह को क्वेरी करके MongoDB कमांड कैसे चला सकता हूं?

  2. किसी आइटम की सबसे हाल की तारीख को क्वेरी करने के लिए कुल का उपयोग करके mongoDB क्वेरी

  3. मैं सम्मिलन के समय उल्का संग्रह कैसे क्रमबद्ध कर सकता हूं?

  4. Mongodb . में शब्दकोश अपडेट कर रहा है

  5. मैं NodeJS के MongoDB देशी ड्राइवर के माध्यम से db.copyDatabase कैसे निष्पादित कर सकता हूं?