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

MongoDB-フィールドのすべての要素がスーパーセットに含まれているかどうかを確認するにはどうすればよいですか?


MongoDBのフィールドのすべての要素に対して、find()を使用し、その中で$elemMatchを使用します。 $ elemMatch演算子は、指定されたすべてのクエリ条件に一致する要素が少なくとも1つある配列フィールドを含むドキュメントと一致します。

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

> db.demo624.insertOne({"ListOfName":["John","Chris","David","Bob"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e9ab3ff6c954c74be91e6a5")
}
> db.demo624.insertOne({"ListOfName":["John","Chris"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e9ab4026c954c74be91e6a6")
}
> db.demo624.insertOne({"ListOfName":["John","Chris","Carol"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e9ab4076c954c74be91e6a7")
}
> db.demo624.insertOne({"ListOfName":["John","Chris","Bob"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e9ab40e6c954c74be91e6a8")
}
> db.demo624.insertOne({"ListOfName":["John","Chris","Mike","Robert"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e9ab4186c954c74be91e6a9")
}

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

> db.demo624.find();

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

{ "_id" : ObjectId("5e9ab3ff6c954c74be91e6a5"), "ListOfName" : [ "John", "Chris", "David", "Bob" ] }
{ "_id" : ObjectId("5e9ab4026c954c74be91e6a6"), "ListOfName" : [ "John", "Chris" ] }
{ "_id" : ObjectId("5e9ab4076c954c74be91e6a7"), "ListOfName" : [ "John", "Chris", "Carol" ] }
{ "_id" : ObjectId("5e9ab40e6c954c74be91e6a8"), "ListOfName" : [ "John", "Chris", "Bob" ] }
{ "_id" : ObjectId("5e9ab4186c954c74be91e6a9"), "ListOfName" : [ "John", "Chris", "Mike", "Robert" ] }

以下は、フィールドのすべての要素がスーパーセットに含まれているかどうかを確認するためのクエリです-

> db.demo624.find({"ListOfName":{$not:{$elemMatch:{$nin:["John", "Chris", "David", "Bob"]}}}});

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

{ "_id" : ObjectId("5e9ab3ff6c954c74be91e6a5"), "ListOfName" : [ "John", "Chris", "David", "Bob" ] }
{ "_id" : ObjectId("5e9ab4026c954c74be91e6a6"), "ListOfName" : [ "John", "Chris" ] }
{ "_id" : ObjectId("5e9ab40e6c954c74be91e6a8"), "ListOfName" : [ "John", "Chris", "Bob" ] }

  1. MongoDBコレクション内のすべてのドキュメントに新しいフィールドを追加する方法

    新しいフィールドを追加するには、MongoDBで$addFieldsを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo712.insertOne({"Name":"John"}); {    "acknowledged" : true,    "insertedId" : ObjectId("5ea85f675d33e20ed1097b82") } > db.demo712.insertOne({"

  2. MongoDB 4でドキュメントを並べ替えて、単一のフィールドのみを表示するにはどうすればよいですか?

    MongoDB 4でドキュメントを並べ替えるには、sort()を使用します。並べ替えられた単一のフィールドのみを表示するには、1に設定します。 ドキュメントを使用してコレクションを作成しましょう- > db.demo611.insertOne({"Name":"Chris"});{    "acknowledged" : true, "insertedId" : ObjectId("5e987110f6b89257f5584d83") } > db.demo61