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

Mongoで投稿タグを実装するにはどうすればよいですか?

    使用するタグとそれぞれのスラッグが変更される可能性が低い場合は、2番目のアプローチの方が適していると思います。ただし、[name, slug]の配列を格納するのではなく、小さな変更をお勧めします。 、この例のpostのようにタグサブドキュメントを作成して、フィールドを明示的にします。 ドキュメント:

    {
        "_id" : ObjectId("4ee33229d8854784468cda7e"),
        "title" : "My Post",
        "content" : "This is a post with some tags",
        "tags" : [
            {
                "name" : "meta",
                "slug" : "34589734"
            },
            {
                "name" : "post",
                "slug" : "34asd97x"
            },
        ]
    }
    

    次に、ドット表記を使用して、特定のタグが付いた投稿をクエリできます。 このように:

    db.test.find({ "tags.name" : "meta"})
    

    tags は配列であり、mongoは、配列全体ではなく配列の任意の要素に対してクエリを照合するのに十分賢いです。ドット表記を使用すると、特定のフィールドと照合できます。

    投稿をクエリするには 特定のタグが含まれている場合は、$neを使用します :

    db.test.find({ "tags.name" : { $ne : "fish" }})
    

    また、一方のタグを含み、もう一方のタグを含まない投稿をクエリするには、$andを使用します :

    db.test.find({ $and : [{ "tags.name" : { $ne : "fish"}}, {"tags.name" : "meta"}]})
    

    これがお役に立てば幸いです!




    1. Redisクラスターでパターンに一致するキーを削除する方法

    2. 現在利用可能:AWSで完全にホストされたMongoDBインスタンス

    3. redis.confを保存して終了する方法は?

    4. futures.rsとRedisPubSubを使用して、ブロッキング呼び出しのfuturesストリームを実装するにはどうすればよいですか?