Mongoose - beberapa skema menggunakan satu koleksi

Saya mencoba merencanakan api saya, misalnya:

/animals           // returns all animals
/animals/dogs      // returns all dogs
/animals/cats      // returns all cats
/animals/dogs/:id  // returns dog

Jadi, saya memiliki model terpisah untuk 'kucing' dan 'anjing', karena keduanya akan berisi properti unik, namun keduanya menggunakan skema 'hewan' sebagai plugin dasar.

Jadi pertanyaan saya muncul tentang di mana menyimpan data, pilihan saya adalah:

1) Koleksi tunggal - simpan kucing dan anjing dalam satu koleksi, ini akan membuat pengambilan data untuk '/ hewan' relatif mudah dengan satu permintaan

2) Banyak koleksi - simpan kucing dan anjing dalam koleksi individual, ini akan membuat penyimpanan data jauh lebih logis, namun ketika mendapatkan data untuk '/animals' akan memerlukan banyak kueri dan penggabungan data tersebut.

Apakah ada opsi lain yang saya lewatkan, atau pendekatan yang saya sukai?

Terima kasih


person leepowell    schedule 02.12.2012    source sumber


Jawaban (2)


Opsi yang Anda sebutkan adalah pendekatan yang paling tepat untuk masalah Anda.

Untuk kasus spesifik Anda, jika properti unik setiap model tidak terlalu besar, gunakan cara 1 untuk menyimpan semua data dalam satu koleksi dan membuat kueri dengan mudah.

Sebaliknya jika model Anda agak berat dan memiliki banyak properti, pisahkan model tersebut ke dalam koleksi berbeda dan kueri berdasarkan modelnya masing-masing. Yang ini tampaknya lebih sulit dilakukan, tetapi setidaknya akan memberi Anda lebih banyak abstraksi dan fleksibilitas untuk memanipulasi model berat. Artinya lanjutkan dengan opsi 2.

person Serdar Dogruyol    schedule 02.12.2012
comment
Saya berada di titik yang sama dengan Leepowell. Tapi pertanyaan saya berkaitan dengan tanggapan Anda. Jika saya memilih #1, apa definisi Anda tentang bukankah sebesar itu?? Saya tahu Anda tidak bisa mendapatkan elemen spesifik karena banyaknya elemen. Tetapi apakah ada angka rata-rata yang Anda sarankan untuk memilih #2 di atas #1?? Saya sedang mengembangkan DB yang akan berisi elemen spesifik objek kursus pembelajaran jarak jauh, baik yang diterapkan maupun yang sedang dikembangkan. Atau apakah 'breakpoint' antara #1 dan #2 merupakan preferensi pengembang? - person Energetic Pixels; 06.08.2015

Yang menyenangkan tentang mongodb adalah tidak ada skema. Sepertinya itulah yang Anda butuhkan. Saya akan mempertimbangkan untuk menggunakan node-mongodb-native biasa saja, dan menyimpan semua hewan di a koleksi tunggal.

person Octavio Ben-Aharon    schedule 02.12.2012