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

MongoDBで少なくとも1つの要素が一致する場合、2つのリストを集約するにはどうすればよいですか?


これには、MongoDBで$groupを使用します。その中で、$ unwind、$ group、$addToSetなどを使用します。ドキュメントを使用してコレクションを作成しましょう-

> db.demo456.insertOne(
... { _id: 101, StudentName: ["Chris", "David"] }
... );
{ "acknowledged" : true, "insertedId" : 101 }
>
> db.demo456.insertOne(
... { _id: 102, StudentName: ["Mike", "Sam"] }
... );
{ "acknowledged" : true, "insertedId" : 102 }
> db.demo456.insertOne(
... { _id: 103, StudentName: ["John", "Jace"] }
... );
{ "acknowledged" : true, "insertedId" : 103 }
> db.demo456.insertOne(
... { _id: 104, StudentName: ["Robert", "John"] }
... );
{ "acknowledged" : true, "insertedId" : 104 }

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

> db.demo456.find();

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

{ "_id" : 101, "StudentName" : [ "Chris", "David" ] }
{ "_id" : 102, "StudentName" : [ "Mike", "Sam" ] }
{ "_id" : 103, "StudentName" : [ "John", "Jace" ] }
{ "_id" : 104, "StudentName" : [ "Robert", "John" ] }

以下は、少なくとも1つの要素が-

に一致する場合に2つのリストを集約するためのクエリです。
> db.demo456.aggregate([
... {$unwind:"$StudentName"},
... {$group:{_id:"$StudentName", combine:{$addToSet:"$_id"}, size:{$sum:1}}},
... {$match:{size: {$gt: 1}}},
... {$project:{_id: 1, combine:1, size: 1, combine1: "$combine"}},
... {$unwind:"$combine"},
... {$unwind:"$combine1"},
... {$group:{_id:"$combine", l:{$first:"$_id"}, size:{$sum: 1}, set: {$addToSet:"$combine1"}}},
... {$sort:{size:1}},
... {$group:{_id: "$l", combineIds:{$last:"$set"}, size:{$sum:1}}},
... {$match: {size:{$gt:1}}}
... ])

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

{ "_id" : "John", "combineIds" : [ 103, 104 ], "size" : 2 }

  1. 2つのリストに少なくとも1つの要素が共通しているかどうかを確認するC#プログラム

    最初のリストを設定します。 int[] arr1 = {    65,    57,    63,    98 }; 次に、2番目のリストを設定します。 int[] arr2 = {    43,    65,    33,    57 }; ==および<演算子を使用して2つのリストに共通の要素があるかどうかを確認するための完全なコードを見てみましょう。 例 using System; using System.Collection

  2. 2つのリストに少なくとも1つの共通要素があるかどうかをチェックするPythonプログラム

    この問題では、2つのユーザー入力リストを使用します。私たちの仕事は、共通の要素があるかどうかを確認することです。非常に単純なトラバース手法を使用して、リストの両方をトラバースし、最初のリストと2番目のリストのすべての要素をチェックします。 例 Input : A = [10, 20, 30, 50] B = [90, 80, 30, 10, 3] Output : FOUND Input : A = [10, 20, 30, 50] B = [100,200,300,500] Output : NOT FOUND アルゴリズム commonelement(