sql >> データベース >  >> NoSQL >> MongoDB

MongoDBデザイン-タグ

    おそらく、タグを文字列配列フィールドに格納する次のようなスキーマを使用します。

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

    このタイプのクエリではmap-reduceは必要ありません。映画ドキュメント内にタグを埋め込むことで、MongoDBのマルチキー を利用できます。 機能を使用し、単一の find() を使用して特定のタグを持つ映画を検索します このようなクエリ:

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

    また、おっしゃるように、クエリのパフォーマンスを向上させるために、マルチキー配列にインデックスを追加することも価値があります。

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


    1. GoogleComputeEngineのsafe_format_mountの問題-ファイルシステムタイプのエラーを指定してください

    2. expressjs、mongodbサイトの画像を保存するための最良の方法はどれですか?

    3. MongoDBで、埋め込まれているドキュメントを見つけるにはどうすればよいですか?

    4. mongoidでクエリまたは条件を作成する方法