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

すべてのキーがフィールドとして存在する場合、MongoDBでドキュメントをフィルタリングしますか?


これには、$ allを使用します。これにより、「キー」などの配列内のすべての要素を含むドキュメントが検索されます。まず、ドキュメントを使用してコレクションを作成しましょう-

> db.demo17.insertOne({"ListOfSubject":["MySQL","MongoDB","Java"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e13847255d0fc6657d21f0a")
}
> db.demo17.insertOne({"ListOfSubject":["C","Python","Java"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e13847e55d0fc6657d21f0b")
}
> db.demo17.insertOne({"ListOfSubject":["C++","MongoDB","PL/SQL"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e13849255d0fc6657d21f0c")
}

以下は、find()メソッドを使用してコレクションからすべてのドキュメントを表示するためのクエリです-

> db.demo17.find();

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

{ "_id" : ObjectId("5e13847255d0fc6657d21f0a"), "ListOfSubject" : [ "MySQL", "MongoDB", "Java" ] }
{ "_id" : ObjectId("5e13847e55d0fc6657d21f0b"), "ListOfSubject" : [ "C", "Python", "Java" ] }
{ "_id" : ObjectId("5e13849255d0fc6657d21f0c"), "ListOfSubject" : [ "C++", "MongoDB", "PL/SQL" ] }

すべてのキーがフィールドとして存在する場合にドキュメントをフィルタリングするクエリは次のとおりです-

> db.demo17.find({"ListOfSubject": { "$all": ["C++","PL/SQL","MongoDB"] } });

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

{ "_id" : ObjectId("5e13849255d0fc6657d21f0c"), "ListOfSubject" : [ "C++", "MongoDB",
"PL/SQL" ] }

  1. MongoDBでサブドキュメントを除外するにはどうすればよいですか?

    サブドキュメントを除外するには、MongoDB集計を使用し、その中で$unwindを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo662.insertOne( ... { ...    "details":[ ...   { ...       Name:"Chris", ...       Marks:35 ...    }, ...    { ...    

  2. MongoDBのサブドキュメントでサブドキュメントをフィルタリングしますか?

    これには、$ unwindと一緒にaggregate()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo583.insert([ ...    { ...       "details1" : [ ...          { ...             "details2" : [ ...         &