MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bidang hasil Mongoose/MongoDB muncul tidak terdefinisi dalam Javascript

Solusi

Anda dapat memanggil toObject metode untuk mengakses bidang. Misalnya:

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

Mengapa

Seperti yang Anda tunjukkan bahwa bidang sebenarnya disimpan di _doc bidang dokumen .

Tapi kenapa console.log(item) => { title: "foo", content: "bar" } ?

Dari kode sumber luwak(document.js), kita dapat menemukan bahwa toString metode Document panggil toObject metode. Jadi console.log akan menampilkan bidang 'dengan benar'. Kode sumber ditunjukkan di bawah ini:

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. Bagaimana saya bisa terhubung ke MongoDB Atlas menggunakan Robomongo?

  2. Dorong Mongo ke array di dalam array

  3. Mengaktifkan Kompresi Data di MongoDB 3.0

  4. Kamus python:menghapus karakter Anda

  5. Tumbuh Signifikansi MongoDB di Bidang Ilmu Data