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

1つのMongoDBドキュメントの2つの配列内で一意の値を取得する


ドキュメント内の2つの配列内で一意の値を取得するには、aggregate()で$setUnionを使用します。 $ setUnionは、2つ以上の配列を受け取り、任意の入力配列に表示される要素を含む配列を返します。

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

>db.demo608.insertOne({"ListOfName1":["John","Chris","Bob","David"],"ListOfName2":["Bob", "Sam","John","Robert","Chris"]}
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e974542f57d0dc0b182d62b")
}

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

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

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

{
   "_id" : ObjectId("5e974542f57d0dc0b182d62b"),
   "ListOfName1" : [
      "John",
      "Chris",
      "Bob",
      "David"
   ],
   "ListOfName2" : [
      "Bob",
      "Sam",
      "John",
      "Robert",
      "Chris"
   ]
}

以下は、1つのMongoDBドキュメント内の2つの配列内で一意の値を取得するためのクエリです-

> db.demo608.aggregate([
...    {$project:{SetOfNames:{$setUnion:['$ListOfName1','$ListOfName2']}}}
... ]).pretty();

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

{
   "_id" : ObjectId("5e974542f57d0dc0b182d62b"),
   "SetOfNames" : [
      "Bob",
      "Chris",
      "David",
      "John",
      "Robert",
      "Sam"
   ]
}

  1. MongoDBコレクションから一意の値を取得するにはどうすればよいですか?

    一意の値を取得して重複を無視するには、MongoDBでdistinct()を使用します。個別の()は、単一のコレクション全体で指定されたフィールドの個別の値を検索し、結果を配列で返します。 ドキュメントを使用してコレクションを作成しましょう- > db.demo704.insertOne({"LanguageCode":"hi"}); {    "acknowledged" : true,    "insertedId" : ObjectId("5ea6ee

  2. MongoDBドキュメントから特定の値をフィルタリングする

    特定の値をフィルタリングするには、MongoDBで$filterを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo751.insertOne( ...    { ...       _id: 101, ...       details: [ ...          { Name: "Robert", id:110,Age:21}, ...         &nb