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