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

MongoDBの集約と投影?


このために、aggregate()と一緒に$projectを使用します。集約された$projectは、要求されたフィールドを持つドキュメントをパイプラインの次のステージに渡します。

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

> db.demo762.insertOne({
...    "_id" : {
...       "userId":101,
...       "userName":"Chris"
...    },
..   . "countryName" : "US",
...
...    "details" : [
...       {
...          "Name" : "Robert",
...          "DueDate" : "2020-04-10"
...
...       },
...
...       {
...          "Name" : "Robert",
...          "DueDate" : "2020-04-09"
...       },
...       {
...          "Name" : "Robert",
...          "DueDate" : "2020-03-06"
...       }
...    ]
... }
... );
{
   "acknowledged" : true,
   "insertedId" : {
      "userId" : 101,
      "userName" : "Chris"
   }
}

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

> db.demo762.find();

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

{ "_id" : { "userId" : 101, "userName" : "Chris" }, "countryName" : "US", "details" : [ { "Name" : "Robert", "DueDate" : "2020-04-10" }, { "Name" : "Robert", "DueDate" : "2020-04-09" }, { "Name" : "Robert", "DueDate" : "2020-03-06" } ] }

以下は、MongoDBの集約とプロジェクションのクエリです-

> db.demo762.aggregate([
...    { "$match": {
...       "_id": { "$eq": { userId:101,userName:"Chris" }}
...    }},
...    { "$unwind": "$details" },
...    { "$sort": { "details.DueDate": 1 }},
...    { "$group": {
...       "_id": "$_id",
...       "details": { "$push": "$details" },
...       "countryName": { "$first": "$countryName" }
...    }},
... { "$project": { "details": { "$slice": ["$details", 2] } ,"countryName": 1 }}
... ]).pretty();

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

{
   "_id" : {
      "userId" : 101,
      "userName" : "Chris"
   },
   "countryName" : "US",
   "details" : [
      {
         "Name" : "Robert",
         "DueDate" : "2020-03-06"
      },
      {
         "Name" : "Robert",
         "DueDate" : "2020-04-09"
      }
   ]
}

  1. MongoDBのNumberLong(x)とNumberLong( "x")の違いは?

    NumberLong(x)は制限値を超えて値を四捨五入しますが、NumberLong( x)はそうではありません。 ここで、数値を検討し、それをNumberLong(x)とNumberLong( x)の両方に使用して、違いを確認します。 ドキュメントを使用してコレクションを作成しましょう- db.demo603.insert({longValueInString:NumberLong( 988998985857575789) }); find()メソッドを使用してコレクションからすべてのドキュメントを表示する- db.demo603.find()。pretty(); これにより

  2. MongoDBとPython

    MongoDBは、広く使用されているドキュメントデータベースであり、NoSQLDBの形式でもあります。 Pythonは、いくつかのpythonモジュールを介してMongoDBと対話し、MongoDB内でデータを作成および操作できます。この記事では、その方法を学びます。ただし、PythonがMongoDBに接続して実行する前に、MongoDBがシステムですでに使用可能になっている必要があります。システムにMongoDBをセットアップするには、MongoDBチュートリアルにアクセスしてください。 ここに.. pymongoをインストールする MongoDBと対話するには、モジュール名pymong