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

複数の結合されたフィールドのフィルターを使用してコレクション内のMongoDBドキュメントを検索するにはどうすればよいですか?


これには、find()とともに$または演算子を使用できます。まず、ドキュメントを使用してコレクションを作成しましょう-

> db.findDocumentWithFilterDemo.insertOne({"ClientName":"Robert","IsMarried":false});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd4fd1e2cba06f46efe9ef1")
}
> db.findDocumentWithFilterDemo.insertOne({"ClientName":"Chris","IsMarried":true});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd4fd322cba06f46efe9ef2")
}
> db.findDocumentWithFilterDemo.insertOne({"ClientName":"David","IsMarried":true});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd4fd3b2cba06f46efe9ef3")
}
> db.findDocumentWithFilterDemo.insertOne({"ClientName":"Carol","IsMarried":true});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd4fd452cba06f46efe9ef4")
}

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

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

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

{
   "_id" : ObjectId("5cd4fd1e2cba06f46efe9ef1"),
   "ClientName" : "Robert",
   "IsMarried" : false
}
{
   "_id" : ObjectId("5cd4fd322cba06f46efe9ef2"),
   "ClientName" : "Chris",
   "IsMarried" : true
}
{
   "_id" : ObjectId("5cd4fd3b2cba06f46efe9ef3"),
   "ClientName" : "David",
   "IsMarried" : true
}
{
   "_id" : ObjectId("5cd4fd452cba06f46efe9ef4"),
   "ClientName" : "Carol",
   "IsMarried" : true
}

以下は、複数の結合されたフィールドのフィルターを使用してコレクション内のドキュメントを検索するためのクエリです-

> db.findDocumentWithFilterDemo.find({  $or: [ { "ClientName": { $ne:"Robert" } }, { "IsMarried": { $ne: false } }  ] } );

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

{ "_id" : ObjectId("5cd4fd322cba06f46efe9ef2"), "ClientName" : "Chris", "IsMarried" : true }
{ "_id" : ObjectId("5cd4fd3b2cba06f46efe9ef3"), "ClientName" : "David", "IsMarried" : true }
{ "_id" : ObjectId("5cd4fd452cba06f46efe9ef4"), "ClientName" : "Carol", "IsMarried" : true }

  1. 複数のドキュメントを含むMongoDBコレクションで、国、州、都市ごとに集計

    集計操作は、複数のドキュメントの値をグループ化し、グループ化されたデータに対してさまざまな操作を実行して、単一の結果を返すことができます。 MongoDBで集約するには、aggregate()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo620.insertOne({"Country":"IND","City":"Delhi",state:"Delhi"}); {    "acknowledged" : tr

  2. MongoDB集計で複数のフィールドでカウント

    複数のフィールドでカウントするには、MongoDBで$facetを使用します。 $ facetは、同じ入力ドキュメントのセットの単一ステージ内で複数の集約パイプラインを処理します。ドキュメントを使用してコレクションを作成しましょう- > db.demo721.insertOne( ...    { ... ...       "details1": { ...          "id":101 ... ...