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

MongoDBのさまざまなコレクション要素の一意のプロパティを合計して、結果の価格を取得しますか?


さまざまなコレクション要素の一意のプロパティの合計を計算するには、$groupとともに$condを使用します。これにより、結果の価格が得られます。

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

> db.demo580.insertOne(
...    {
...       "Name":"John",
...       "Id1":"110",
...       "Id2":"111",
...       "Price":10.5
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e918cebfd2d90c177b5bcae")
}
>
> db.demo580.insertOne(
... {
...    "Name":"John",
...    "Id1":"111",
...    "Id2":"",
...    "Price":9.5
... }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e918cecfd2d90c177b5bcaf")
}

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

> db.demo580.find();

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

{ "_id" : ObjectId("5e918cebfd2d90c177b5bcae"), "Name" : "John", "Id1" : "110", "Id2" : "111", "Price" : 10.5 }
{ "_id" : ObjectId("5e918cecfd2d90c177b5bcaf"), "Name" : "John", "Id1" : "111", "Id2" : "", "Price" : 9.5 }

以下は、さまざまなコレクション要素の一意のプロパティを合計するためのクエリです-

> db.demo580.aggregate([
...    {
...       $project: {
...          Id1: 1,
...          Id2: 1,
...          Price: 1,
...          match: {
...             $cond: [
...                {$eq: ["$Id2", ""]},
...                "$Id1",
...                "$Id2"
...             ]
...          }
...       }
...    },
...    {
...       $group: {
...          _id: '$match',
...          Price: {$sum: '$Price'},
...          resultId: {
...             $addToSet: {
...             $cond: [
...                {$eq: ['$match', '$Id1']},
...                null,
...                '$Id1'
...             ]
...          }
...       }
...    }
... },
... {$unwind: '$resultId'},
... {$match: {
...       resultId: {
...          $ne: null
...       }
...    }
... },
... {
...    $project: {
...       Id1: '$resultId',
...       Price: 1,
...       _id: 0
...    }
... }
... ])

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

{ "Price" : 20, "Id1" : "110" }

  1. MongoDBコレクションのすべての名前を取得します

    元々は2019年1月18日にObjectRocket.com/blogで公開されました。 スキーマを検証したり、フィールドのタイプミスをデバッグしたり、設定すべきでないフィールドを見つけたりするには、MongoDB®コレクションのすべてのキーを理解する必要があります。 ObjectRocketを含む多くのMongoDB-as-a-Service企業は、ユーザーインターフェイス(UI)でこれを行う簡単な方法を提供しています。経験豊富なMongoDBusersは通常、MongooseforJavaScript®やMongoengineforPython®などのオブジェクトドキュメントマッパ

  2. MongoDBコレクション内のすべてのキーの名前を取得する

    スキーマを検証したり、フィールドのタイプミスをデバッグしたり、設定されていないフィールドを見つけたりするには、MongoDBコレクションのすべてのキーを理解する必要があります。 多くのMongoDB-as-a-service企業は、ObjectRocketを含め、UIでこれを行う簡単な方法を提供しています。経験豊富なMongoDBユーザーは通常、JS用のMongooseやPython用のMongoengineなどのオブジェクトドキュメントマッパー(ODM)から始めます。これにより、アプリケーションの一貫したスキーマを構築し、タイプミスを減らすことができます。 (ODMは型の検証も行うため、整