MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Име на полето batchSize се игнорира в Field Projection

Прав сте, че драйверът неправилно интерпретира това като 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. Надстройка до ClusterControl Enterprise Edition

  2. Има ли начин да отпечатате "красиво" изхода на обвивката на MongoDB във файл?

  3. запитване на колекция без предаване на схема в mongoose

  4. Mongoid Group By или MongoDb Group by в релсите

  5. Монгокли поддържа ли URL на формула за Apple M1 чипове?