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

春のデータmongo@CompoundIndexをサブコレクションで使用する方法は?

    スプリングデータも使用するこの種の複合インデックスをアプリで試しましたが、正しく機能しました。@CompoundIndexのインデックス定義を修正するだけで済みます。 注釈:

    @CompoundIndex(name = "aid_bid_idx", def = "{'id' : 1, 'b.id' : 1}")
    @Document(collection = "doc_a")
    public class A {    
      @Field("id")
      private Integer id;
    
      @Field("b")
      private Collection<B> b;
      ...
    }
    
    public class B {    
      @Field("id")
      private Integer id;
      ...
    } 
    

    mongoシェルでexplain(次のように)を使用してクエリを実行すると、インデックス*aid_bid_idx*が使用されることがわかります。

    db.doc_a.find({ "id" : 1, "b.id" : 1}).explain()
    

    結果は次のようになります:

    {
        "cursor" : "BtreeCursor aid_bid_idx",
        ...
    }
    


    1. ネストされた配列を更新するMeteormongo

    2. Node.js、Mongoがデータを検索して返す

    3. FieldPathフィールド名に「。」を含めることはできません。 $groupで

    4. ファイル/モジュール間でRedis接続を共有する必要がありますか?