Menyimpan pengaturan aplikasi/situs dalam mongodb menggunakan luwak

Saya telah mengembangkan situs berbasis node.js yang sudah berjalan dengan sukses dan menggunakan mongodb sebagai penyimpanan backend menggunakan luwak.

Masalahnya adalah, saya ingin menerapkan beberapa pengaturan yang dapat dikonfigurasi untuk situs (yang seharusnya dapat dikonfigurasi menggunakan halaman /backend/).

Jadi saya harus mencari cara untuk menyimpan semua pengaturan tersebut menggunakan luwak tetapi saya tidak dapat menemukan skema yang sesuai dengan hal tersebut.

var mongoose        = require('mongoose');

var SettingsSchema = new mongoose.Schema({
});

mongoose.model('Settimgs', SettingsSchema);

Apakah saya bisa memaksa skema untuk hanya memiliki satu dokumen? Jadi saya bisa menggunakan skema di atas hanya dengan satu dokumen dan meletakkan semua pengaturan yang diperlukan di sana.

Selain itu, saya mendapat ide lain di mana kumpulan skema pengaturan akan menampung banyak dokumen, masing-masing dengan nama bagian uniknya sebagai berikut, tetapi konten skema untuk setiap bagian harus berbeda. Satu ide yang saya dapatkan hanyalah menyimpan json bagian tertentu sebagai data objek tanpa memberikan detail model;

var mongoose        = require('mongoose');

var SettingsSchema = new mongoose.Schema({
    name: { type: String, lowercase: true, trim: true, unique: true, required: true },  // the settings section name
    ...
    JSON-Object or JSON-string here?
    Is {data: Object} a possible usage?
});

mongoose.model('Settimgs', SettingsSchema);

Tetapi jika saya dapat menemukan cara untuk menentukan model untuk bagian, itu akan jauh lebih baik & dapat diuji -- seperti model untuk pengaturan backend dan satu lagi untuk pengaturan front-end yang semuanya harus disimpan dalam koleksi Pengaturan.

Jadi yang ingin saya miliki adalah;

var BackendSchema = new mongoose.Schema({
.. backend related settings here..
});

var FrontendSchema = new mongoose.Schema({
.. frontend related settings here..
});

dan akhirnya memiliki skema pengaturan utama untuk mencakup semuanya dan menyimpan semua dokumen tersebut ke satu koleksi.

Saya telah mencari beberapa saat untuk melihat apakah ada bacaan menarik mengenai topik tersebut tetapi tidak berhasil -- alangkah baiknya jika Anda dapat mempostingnya jika Anda mengetahuinya.


person HuseyinUslu    schedule 08.05.2015    source sumber


Jawaban (1)


Anda harus membaca tentang Diskriminator Luwak di sini

Menurut dokumentasi

Diskriminator adalah mekanisme pewarisan skema. Mereka memungkinkan Anda untuk memiliki beberapa model dengan skema yang tumpang tindih di atas koleksi MongoDB dasar yang sama.

Saya harap ini membantu Anda

person Veldars    schedule 27.02.2019