MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBの$unwind演算子とは何ですか?


MongoDBの$unwind演算子は各配列で同じであり、マッピングドキュメントを返します。これがMongoDBの$unwind演算子のデモです。

概念を理解するために、ドキュメントを使用してコレクションを作成しましょう。ドキュメントを使用してコレクションを作成するためのクエリは次のとおりです-

> db.unwindOperatorDemo.insertOne({"StudentName":"Larry","StudentAge":23,"StudentSubje
ct":["C","C++","Java","MongoDB"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7ef5f3559dd2396bcfbfc8")
}

find()メソッドを使用して、コレクションのすべてのドキュメントを表示します。クエリは次のとおりです-

> db.unwindOperatorDemo.find().pretty();

以下は出力です-

{
   "_id" : ObjectId("5c7ef5f3559dd2396bcfbfc8"),
   "StudentName" : "Larry",
   "StudentAge" : 23,
   "StudentSubject" : [
      "C",
      "C++",
      "Java",
      "MongoDB"
   ]
}

これが$unwind演算子のデモです。クエリは次のとおりです-

> db.unwindOperatorDemo.aggregate(
   ... { $project : {
      ... StudentName : 1 ,
      ... StudentAge: 1 ,
      ... StudentSubject : 1
   ... }},
   ... { $unwind : "$StudentSubject" }
... ).pretty();

以下は出力です-

{
   "_id" : ObjectId("5c7ef5f3559dd2396bcfbfc8"),
   "StudentName" : "Larry",
   "StudentAge" : 23,
   "StudentSubject" : "C"
}
{
   "_id" : ObjectId("5c7ef5f3559dd2396bcfbfc8"),
   "StudentName" : "Larry",
   "StudentAge" : 23,
   "StudentSubject" : "C++"
}
{
   "_id" : ObjectId("5c7ef5f3559dd2396bcfbfc8"),
   "StudentName" : "Larry",
   "StudentAge" : 23,
   "StudentSubject" : "Java"
}
{
   "_id" : ObjectId("5c7ef5f3559dd2396bcfbfc8"),
   "StudentName" : "Larry",
   "StudentAge" : 23,
   "StudentSubject" : "MongoDB"
}

サンプル出力を見ると、フィールド「StudentName」と「StudentAge」が各「StudentSubject」配列フィールドにマッピングされています。


  1. Pythonの**演算子の結合法則は何ですか?

    Pythonドキュメントから: 同じボックス内の演算子は、左から右にグループ化されます(比較を除く)。テストには、すべて同じ優先順位と左から右へのチェーンが含まれます。「比較」セクションを参照してください。指数は、右から左にグループ化されます。 したがって、**演算子(べき乗)は右から左への結合です。たとえば、 2 ** 3 ** 4 will be evaluated as: (2 ** (3 ** 4)) たとえば、 print(2 ** 3 ** 0) これにより、出力が得られます: 2

  2. &=演算子はPythonで何をしますか?

    + =演算子は、object .__ iand __()関数のシンタックスシュガーです。 Pythonドキュメントから: これらのメソッドは、拡張された算術割り当て(+ =、-=、* =、@ =、/ =、// =、%=、** =、)を実装するために呼び出されます。 =、&=、^ =、| =)。これらのメソッドは、その場で操作を実行し(自己を変更)、結果を返すようにする必要があります(自己である可能性がありますが、そうである必要はありません)。 例 だからあなたが次のようなことをするとき- a = 6 # 110 in binary b = 5 # 101 in binary a &=