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

MongoDBから2つのアレイをアンワインドします


巻き戻すには、$unwindを使用します。 $ unwindは、入力ドキュメントから配列フィールドを分解して、各要素のドキュメントを出力します。

ドキュメントを使用してコレクションを作成しましょう-

> db.demo515.insertOne(
... {
...    "details1": [
...       "4700100004"
...    ],
...    "details2": [
...       "Not Given"
...    ],
...    "Value1": [
...       "56",
...       "45",
...       "35",
...    ],
...    "Value2": [
...       "35",
...       "45",
...       "56",
...    ]}
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e889e51987b6e0e9d18f590")
}

find()メソッドを使用してコレクションからすべてのドキュメントを表示する-

> db.demo515.find();

これにより、次の出力が生成されます-

{ "_id" : ObjectId("5e889e51987b6e0e9d18f590"), "details1" : [ "4700100004" ], "details2" : [
"Not Given" ], "Value1" : [ "56", "45", "35" ], "Value2" : [ "35", "45", "56" ] }

以下は、2つの配列を巻き戻すためのクエリです-

> db.demo515.aggregate([
... { $unwind: { path: "$Value1", includeArrayIndex : "index1" } },
... { $unwind: { path: "$Value2", includeArrayIndex : "index2" } },
... { $project: {
...    _id : 1,
...    details1: 1,
...    details2: 1,
...    Value1: 1,
...    Value2: 1,
...    valid: { $eq: ["$index1", "$index2"] } }
... },
... { $match: { valid: true } }
... ]);

これにより、次の出力が生成されます-

{ "_id" : ObjectId("5e889e51987b6e0e9d18f590"), "details1" : [ "4700100004" ], "details2" : [
"Not Given" ], "Value1" : "56", "Value2" : "35", "valid" : true }
{ "_id" : ObjectId("5e889e51987b6e0e9d18f590"), "details1" : [ "4700100004" ], "details2" : [
"Not Given" ], "Value1" : "45", "Value2" : "45", "valid" : true }
{ "_id" : ObjectId("5e889e51987b6e0e9d18f590"), "details1" : [ "4700100004" ], "details2" : [
"Not Given" ], "Value1" : "35", "Value2" : "56", "valid" : true }

  1. C#で2つの配列を組み合わせる

    まず、2つの配列を宣言して初期化します- int[] arr1 = { 37, 45, 65 }; int[] arr2 = { 70, 89, 118 }; 次に、新しいリストを作成します- var myList = new List<int>(); myList.AddRange(arr1); myList.AddRange(arr2); AddRange()メソッドを使用して、新しく作成されたリストに配列を追加します。 myList.AddRange(arr1); myList.AddRange(arr2); 次に、以下に示すようにリストを配列に変換します- 例 usi

  2. C#での2つの配列の交差

    2つの配列の共通部分を取得するには、Intersectメソッドを使用します。これは、System.Linq名前空間からの拡張メソッドです。 このメソッドは、2つの配列間の共通要素を返します。 最初に2つのアレイを設定します- int[] arr1 = { 44, 76, 98, 34 }; int[] arr2 = { 24, 98, 44, 55, 47, 86 }; 次に、両方のアレイでIntersectを使用します- Arr1.Intersect(arr2); 以下は完全なコードです- 例 using System; using System.Linq; class Progr