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

बैच आकार फ़ील्ड नाम फ़ील्ड प्रोजेक्शन में अनदेखा किया गया

आप सही हैं कि ड्राइवर गलत तरीके से इसकी व्याख्या करता है batchSize विकल्प और प्रोजेक्शन स्टेटमेंट पर ध्यान नहीं देता।

ऐसा करने का सही तरीका हालांकि आधुनिक ड्राइवर रिलीज़ में वास्तव में .project() . का उपयोग करना है इसके बजाय "कर्सर विधि"। यह अन्य भाषा चालक कार्यान्वयनों के साथ अधिक संगत है।

    db.collection('collection').find()
      .project({ name: 1, batchSize: 1})
      .toArray();

एक पूर्ण प्रदर्शन के रूप में:

const mongodb = require('mongodb'),
      MongoClient = mongodb.MongoClient;


(async function() {

  let db;

  try {
    db = await MongoClient.connect('mongodb://localhost/test');

    // New form uses .project() as a cursor method
    let result = await db.collection('collection').find()
      .project({ name: 1, batchSize: 1})
      .toArray();

    console.log(JSON.stringify(result,undefined,2));

    // Legacy form confuses this as being a legacy "cursor option"
    let other = await db.collection('collection')
      .find({},{ name: 1, batchSize: 1 })
      .toArray();

    console.log(JSON.stringify(other,undefined,2));

  } catch(e) {
    console.error(e)
  } finally {
    db.close()
  }

})()

उत्पादन करता है:

[
  {
    "_id": "594baf96256597ec035df23c",
    "name": "Batch 1",
    "batchSize": 30
  },
  {
    "_id": "594baf96256597ec035df234",
    "name": "Batch 2",
    "batchSize": 50
  }
]
[
  {
    "_id": "594baf96256597ec035df23c",
    "name": "Batch 1",
    "batchSize": 30,
    "users": []
  },
  {
    "_id": "594baf96256597ec035df234",
    "name": "Batch 2",
    "batchSize": 50,
    "users": []
  }
]

जहां पहला आउटपुट फॉर्म सही किया गया है, .project() . का उपयोग करके



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB कैश सिस्टम को समझें

  2. Mongodb Mongoimport बहुत बड़ा है:विफलता पार्सिंग त्रुटियां

  3. कैसे एक डालने के बाद PyMongo में वस्तु आईडी प्राप्त करने के लिए?

  4. MongoDB एकत्रीकरण के अंदर फ़ील्ड का प्रकार बदलें और क्या $lookup फ़ील्ड पर अनुक्रमणिका का उपयोग करता है या नहीं?

  5. MongoDB प्रदर्शन ट्रैक करें?