sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB design - tagy

Pravděpodobně bych zvolil schéma, jako je toto, které ukládá značky do pole řetězce:

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" ]
})

Pro tento typ dotazu byste nepotřebovali map-reduce. Vložením značek do dokumentu filmu můžete využít multikey MongoDB funkce a najít filmy s danou značkou pomocí jednoho find() dotaz takto:

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

A jak jste řekli, také stojí za to přidat index do víceklíčového pole, abyste zlepšili výkon dotazů:

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


  1. MongoDB přejmenovat pole databáze v poli

  2. Spuštění souboru JavaScript v MongoDB

  3. Jak spustit mongo db na windows

  4. MongoDB vložený v jazyce Java