cari

Rumah  >  Soal Jawab  >  teks badan

mongoose - 关于mongodb的建模,有人建议我 把 “商品”的“品牌名” 从ObjectId 转为 string,这样好吗?

他说这样更方便查询,是呀,傻子也知道这样便于查询。我质疑说这样在存储时会不好,但他说有shortId什么的,求解答!

天蓬老师天蓬老师2761 hari yang lalu650

membalas semua(1)saya akan balas

  • 给我你的怀抱

    给我你的怀抱2017-04-25 09:04:36

    Ini memerlukan analisis terperinci perniagaan tertentu.
    Jika nama jenama ditetapkan kepada ObjectId, bermakna terdapat satu lagi collection yang menyimpan jenama tersebut. Ini ialah kaedah pangkalan data relasi biasa Untuk mongodb, setiap kali anda ingin mendapatkan nama jenama produk, anda memerlukan satu lagi operasi baca.

    Jika ditetapkan kepada String, semua maklumat produk dan nama jenama boleh diambil dalam satu operasi, tetapi sangat menyusahkan untuk mengubah suai jenama Jika anda juga perlu mendapatkan beberapa maklumat tentang jenama dalam satu permintaan, seperti negara di mana jenama itu terletak, Kemudian anda masih perlu melakukan pertanyaan semula, kerana skalabiliti tidak cukup baik.

    Jika ditetapkan kepada Object Contohnya:

    javascript{
        item:"",
        price:100,
        brand:{
            name: "micorsoft",
            country: "US"
        }
    }
    

    Ini boleh menyelesaikan masalah kebolehskalaan, dan kelajuan pertanyaan juga sangat pantas Jika maklumat jenama produk tidak dikemas kini dengan kerap, maka saya mengesyorkan ini. Walaupun tahap redundansi data meningkat, kelajuan pertanyaan dipertingkatkan Ini adalah anti-paradigma.

    Jika maklumat jenama dikemas kini dengan kerap, maka lebih baik menggunakan ObjectId Walaupun memerlukan satu pertanyaan lagi, ia meningkatkan kebolehpercayaan.

    balas
    0
  • Batalbalas