36日目-2[データベースNoSQL演算子タイプ]


比較演算子


  • は、大まかな演算子タイプです.
  • db.trips.find({"a" : {"$lte" : 70}, "b" : {"$ne" : "customer"}})
    db.trips.find({"a" : {"$lte" : 70}, "b" : {"$eq" : "not customer"}})
    tripsという集合では、aは70以下、bは非顧客の値に等しい.

    論理演算子


    db.collection_name.find($nor: [{result:"a"}, {result:"b"}])
    resultはa,bの値ではありません.
    and演算子は基本的に内在しています.
    db.collection_name.find({sector: "a"}, {name:"hojin"})
    このコマンドは
    db.collection_name.find($and : [{sector: "a"}, {name:"hojin"}])
    これと同じです.

    ひょうじえんざんし


    これは$exprについての内容です.
  • findを除いて、
  • と書きます.
    {"$expr" : {"$eq" : {"$a","$b"}}}
    $exprを使用して、同じエンティティ内で値を比較できます.この値がどのフィールドと同じであるべきかを指定する必要はありません.
    このとき、フィールドに$値が含まれている場合は、そのフィールドの値を表します.
  • その命令はa,bの値を互いに比較したものである.
  • より具体的な例を聞いてみましょう.
    同じ場所で自転車を借りたり、1200秒以上借りたりするユーザーが必要だと仮定します.
    {$expr:{"$and" :[
        {"$gt" :["$time", 1200]},
        {"$eq" :["$end", "$start"]}
        				]}}
    {$expr:[
        {"$gt" :["$time", 1200]},
        {"$eq" :["$end", "$start"]}
        				]}
    私から見れば、かなり複雑ですが...熟能生巧

    配列演算子


    これは、データの並べ替えに使用できる演算子の整理です.
    前の記事ではpushを使用して配列に値を追加する方法について説明した.
    では、配列の値をどのように取得しますか?
    フィールドインポートを簡単に指定すればよい
  • aのフィールドが配列された形式であると仮定する.
  • {"a":"shampoo"}
    Aという配列の中にシャンプーがあれば、お値段が付きます.
    {"a":["shampoo"]}
    このようにしてアレイを作成すると、
    aというフィールドにshampoo万のドキュメントが1つしかありません.
  • は正確に1つしかないアクセサリーを持ってきました.
  • でももし.
    {"a": ["shampoo", "lotion"]}
    こんなコマンドを入力してみたい
    では、aという名前のフィールドに「シャンプー、シャンプー」という順番が逆の場合
    この値はロードされません.
  • 順序が重要だから
    順序を考慮せずにフィールドをロードする必要がある場合は、次の操作を行います.
    {"a" : {$all : ["shampoo", "lotion"]}
    これでallを使えばいいです.
  • 低値配列(シーケンスなし)
  • をインポートする.
    {"a" : {"$size" : 20, $all : ["shampoo", "lotion"]}
    こんなに大きいのもあげられます.
    配列は使用形態が少し異なることに注意してください.

    Projection


    簡単に言えば、データから欲しいデータだけを取得することです.
    SQL文でMySQLから必要な値を取得するのと同じです.
    ドキュメントには多くのフィールドがあり、これらのフィールドをすべてインポートすると、読み取り可能性が低下します.
    投影を使用して、必要なフィールドのみを取得します.
    {"a" : {"$size" : 20, $all : ["shampoo", "lotion"]},
    	{"price":1, "address":1}
    このように2回パラメータを入力すると、希望するフィールドのみが表示されます.

    ここで0と1はフィールドの値ではありません.
  • 0はこのフィールドを含まず、1はこのフィールド
  • を含む.
    このような役割を果たす.
    この他にもAggregationについての内容があります.
    簡単に言えば、
  • は必ずしも使用する必要はありませんが、より簡単に使用できます.
  • 単純な配列でmap後reduceを使用すると、配列内のすべての値がmapによって処理され、その後、
  • が返されることを知っています.
  • Aggregationは、結果を理解したり、よりよく理解したりするために使用されるフレームワークです.
  • だからこれからは必要だし、NoSQLについてよく知っているときは、それを勉強して運用しましょう.