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

MongoDBmap-reduceの実装


Map-reduceは、大量のデータを有用な集計結果に凝縮するためのデータ処理パラダイムです。

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

> db.demo280.insertOne({"CustomerName":"Chris","isMarried":true});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e49116edd099650a5401a62")
}
> db.demo280.insertOne({"CustomerName":"Mike","isMarried":false});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e491170dd099650a5401a63")
}
> db.demo280.insertOne({"CustomerName":"David","isMarried":false});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e491170dd099650a5401a64")
}
> db.demo280.insertOne({"CustomerName":"Bob","isMarried":true});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e491171dd099650a5401a65")
}

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

> db.demo280.find();

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

{ "_id" : ObjectId("5e49116edd099650a5401a62"), "CustomerName" : "Chris", "isMarried" : true }
{ "_id" : ObjectId("5e491170dd099650a5401a63"), "CustomerName" : "Mike", "isMarried" : false }
{ "_id" : ObjectId("5e491170dd099650a5401a64"), "CustomerName" : "David", "isMarried" : false }
{ "_id" : ObjectId("5e491171dd099650a5401a65"), "CustomerName" : "Bob", "isMarried" : true }

以下は、MongoDBmapreduce-

を実装するためのクエリです。
> db.demo280.mapReduce(
...   function() { emit(this.isMarried,true); },
...
...   function(key, values) {return Array.sum(values)}, {
...      query:{isMarried:true},
...      out:"Output"
...   }
...)

これにより、クエリに一致する合計2つのドキュメント(入力:2)を表示する次の出力が生成され、2つの結果が出力されました(送信:2)-

{
   "result" : "Output",
   "timeMillis" : 1241,
   "counts" : {
      "input" : 2,
      "emit" : 2,
      "reduce" : 1,
      "output" : 1
   },
   "ok" : 1
}

  1. MongoDBのidフィールドを非表示

    ドキュメントを使用してコレクションを作成しましょう- > db.demo575.insertOne({id:101,Information:{Name:"Chris",Age:21}});{    "acknowledged" : true, "insertedId" : ObjectId("5e916a55581e9acd78b427f7") } > db.demo575.insertOne({id:102,Information:{Name:"David",A

  2. MongoDBへの一括挿入

    一括挿入には、MongoDBのinsertMany()の概念を使用します。 insertMany()は、複数のドキュメントをコレクションに挿入します。 ドキュメントを使用してコレクションを作成しましょう- > db.demo729.insertMany( [ ...    { BankName:"HDFC Bank",cardType:"Credit","CustomerName":[{Name:"Chris",Age:25}]}, ...    { BankName