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

Các trường kết quả Mongoose / MongoDB xuất hiện không xác định trong Javascript

Giải pháp

Bạn có thể gọi toObject để truy cập các trường. Ví dụ:

var itemObject = item.toObject();
console.log(itemObject.title); // "foo"

Tại sao

Khi bạn chỉ ra rằng các trường thực được lưu trữ trong _doc trường của tài liệu .

Nhưng tại sao console.log(item) => { title: "foo", content: "bar" } ?

Từ mã nguồn của mongoose (document.js), chúng ta có thể thấy rằng toString phương thức của Document gọi toObject phương pháp. Vì vậy, console.log sẽ hiển thị các trường 'chính xác'. Mã nguồn được hiển thị bên dưới:

var inspect = require('util').inspect;

...

/**
 * Helper for console.log
 *
 * @api public
 */
Document.prototype.inspect = function(options) {
  var isPOJO = options &&
    utils.getFunctionName(options.constructor) === 'Object';
  var opts;
  if (isPOJO) {
    opts = options;
  } else if (this.schema.options.toObject) {
    opts = clone(this.schema.options.toObject);
  } else {
    opts = {};
  }
  opts.minimize = false;
  opts.retainKeyOrder = true;
  return this.toObject(opts);
};

/**
 * Helper for console.log
 *
 * @api public
 * @method toString
 */

Document.prototype.toString = function() {
  return inspect(this.inspect());
};


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $ tách

  2. Cách dễ dàng quản lý các bản cập nhật cơ sở dữ liệu và các bản vá bảo mật

  3. MongoDB:Làm cách nào để cập nhật một thành phần con duy nhất trong một mảng, được tham chiếu bởi chỉ mục trong mảng?

  4. Có bất kỳ công cụ nào để ước tính kích thước chỉ mục trong MongoDB không?

  5. Mongoose &trường độc đáo