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

TypeError:db.collection bukan fungsi

Jadi saya memilih jawaban yang mengatakan turun saja ke mongodb 2.2.33 karena saya mencobanya dan berhasil, tetapi kemudian saya merasa aneh tentang hanya menurunkan versi untuk memperbaiki masalah jadi saya menemukan solusi yang memungkinkan Anda untuk menyimpan versi>=3.0. Jika ada yang menemukan masalah ini dan masalahnya tidak memberikan referensi kosong seperti jawaban yang diterima, coba solusi ini.

Saat Anda berlari..

MongoClient.connect(db.url,(err,database) =>{ }

Dalam versi mongodb>=3.0, database itu variabel sebenarnya adalah objek induk dari objek yang Anda coba akses dengan database.collection('whatever') . Untuk mengakses objek yang benar, Anda perlu merujuk nama database Anda, bagi saya itu dengan melakukan

MongoClient.connect(db.url,(err,database) =>{ 
  const myAwesomeDB = database.db('myDatabaseNameAsAString')
  myAwesomeDB.collection('theCollectionIwantToAccess')
}

Ini memperbaiki kesalahan saya saat menjalankan server node.js saya, semoga ini membantu seseorang yang tidak hanya ingin menurunkan versi mereka.

(juga, jika Anda tidak tahu nama db Anda karena suatu alasan, lakukan saja console.log(database) dan Anda akan melihatnya sebagai atribut objek)

EDIT (Juni 2018):

Menurut ini, panggilan balik sebenarnya mengembalikan klien database yang terhubung, bukan database itu sendiri.

Oleh karena itu, untuk mendapatkan instance database, kita perlu menggunakan metode ini, yang mengambil dbName . Dalam dokumentasi dikatakan If not provided, use database name from connection string. , seperti yang disebutkan oleh @divillysausages di komentar di bawah.

Singkatnya, kita harus memanggil database.db().collection('theCollectionIwantToAccess'); jika dbName disediakan oleh url, di mana database sebenarnya adalah client untuk pemahaman yang lebih baik



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Hapus Duplikat dari MongoDB

  2. Apa pendekatan yang direkomendasikan terhadap database multi-penyewa di MongoDB?

  3. MongoDB :kerangka kerja agregasi :$cocok antar bidang

  4. Referensi skema luwak dan jenis 'ObjectID' yang tidak ditentukan

  5. Bagaimana Mengembalikan Nilai Saja di MongoDB