MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Projekt MongoDB - tagi

Prawdopodobnie wybrałbym schemat taki jak ten, który przechowuje tagi w polu tablicy ciągów:

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

W przypadku tego typu zapytań nie potrzebujesz funkcji map-reduce. Osadzając tagi wewnątrz dokumentu filmu, możesz skorzystać z multikey MongoDB funkcji i znajdź filmy z danym tagiem za pomocą pojedynczej find() zapytanie w ten sposób:

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

I tak jak powiedziałeś, warto również dodać indeks do tablicy z wieloma kluczami, aby poprawić wydajność zapytań:

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tworzenie baz danych w Pythonie i MongoDB

  2. Obetnij kolekcję

  3. wiosna data mongodb group by

  4. Aliasy pól z Mongoid i Rails

  5. Jak mogę pobrać zmodyfikowane dokumenty po operacji aktualizacji w mongodb za pomocą pymongo?