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

Desain MongoDB - tag

Saya mungkin akan menggunakan skema seperti ini, yang menyimpan tag dalam bidang array string:

db.movies.insert({
    name: "The Godfather",
    director: "Francis Ford Coppola",
    tags: [ "mafia", "wedding", "violence" ]
})

db.movies.insert({
    name: "Pulp Fiction",
    director: "Quentin Tarantino",
    tags: [ "briefcase", "violence", "gangster" ]
})

db.movies.insert({
    name: "Inception",
    director: "Christopher Nolan",
    tags: [ "dream", "thief", "subconscious" ]
})

Anda tidak perlu pengurangan peta untuk jenis kueri ini. Dengan menyematkan tag di dalam dokumen film, Anda dapat memanfaatkan multikey MongoDB fitur, dan temukan film dengan tag tertentu menggunakan find() tunggal pertanyaan seperti ini:

db.movies.find( { tags: "dream" } )

Dan seperti yang Anda katakan, ada baiknya juga menambahkan indeks ke larik multikunci untuk meningkatkan kinerja kueri:

db.movies.ensureIndex( { tags: 1 } )


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mengapa gridfs get tidak berfungsi pada file id (ObjectId) hanya dengan nama file

  2. Apakah MongoDB mendukung tipe floating point?

  3. Bagaimana cara mengubah String ke Array di MongoDB?

  4. MongoDB $isArray

  5. MongoDB:kueri untuk bidang