MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Tên trường batchSize bị bỏ qua trong Phép chiếu trường

Bạn đúng là trình điều khiển diễn giải sai điều này là batchSize và bỏ qua câu lệnh chiếu.

Cách chính xác để làm điều này mặc dù trong các bản phát hành trình điều khiển hiện đại là thực sự sử dụng .project() "phương thức con trỏ" thay thế. Điều này phù hợp hơn với các triển khai trình điều khiển ngôn ngữ khác.

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

Như một minh chứng đầy đủ:

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()
  }

})()

Tạo ra đầu ra:

[
  {
    "_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": []
  }
]

Trong đó biểu mẫu đầu ra đầu tiên là biểu mẫu đã sửa, sử dụng .project()



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Vị trí của cơ sở dữ liệu mongodb trên mac

  2. Triển khai gắn thẻ đơn giản với MongoDB

  3. Mongoose trả về không xác định cho một trường hiện có

  4. Chèn dữ liệu vào mảng lồng nhau trong mongodb

  5. MongoDB $ trong Nhà điều hành đường ống tổng hợp