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

Mongo-PHP - pengecualian MongoCursor dengan MongoDB PHP Driver v1.6

Ini mungkin terkait dengan bug yang diperkenalkan di 1.6.0 terkait iterasi dengan hasNext() dan getNext() :PHP-1382 . Perbaikan telah digabungkan ke v1.6 cabang dan akan dirilis akhir minggu ini sebagai 1.6.1.

Yang mengatakan, bug tentang hasNext() sebenarnya dokumen terakhir dalam kumpulan hasil akan terlewatkan saat iterasi. Jika saya menjalankan skrip asli Anda terhadap 1.6.0, array berisi null nilai sebagai elemen terakhirnya. Dengan perbaikan di tempat, array akan berisi semua dokumen seperti yang diharapkan. Saya tidak dapat mereproduksi pengecualian yang Anda lihat dengan salah satu versi.

Pengecualian itu sebenarnya dilemparkan dari pemeriksaan internal pada struktur data C, untuk memastikan bahwa objek kursor dikaitkan dengan benar dengan koneksi MongoClient dan soket. Lihat MONGO_CHECK_INITIALIZED() panggilan makro di file ini . Hampir semua metode kursor memeriksa apakah MongoClient terkait, tetapi hasNext() unik karena ia juga memeriksa objek soket (saya percaya metode lain hanya menganggap kursor dengan MongoClient juga memiliki soket). Jika pengecualian itu benar-benar dapat direproduksi untuk Anda dan Anda bersedia melakukan beberapa debug dengan ekstensi, saya akan sangat tertarik untuk mengetahui mana dari dua pemeriksaan yang menimbulkan kesalahan.

Sebagai catatan tambahan, Anda juga harus menentukan "replicaSet" pilihan saat membangun MongoClient. Ini harus memiliki nama kumpulan replika, yang memastikan bahwa driver dapat dengan benar mengabaikan koneksi ke host yang bukan anggota kumpulan replika yang dimaksud.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana Mocha mengetahui file mana yang pertama kali dimuat di test suite

  2. Cara mengaktifkan elemen dalam array di mongoDB

  3. Basis data mana yang harus dipilih (Cassandra, MongoDB, ?) untuk menyimpan dan menanyakan data peristiwa / log / metrik?

  4. Bagaimana saya bisa menggunakan MongoDB di Kohana?

  5. Mengapa $in jauh lebih cepat daripada $all?