nullでグループ化したMongoDBドキュメントの平均値を計算しますか?
$ group演算子は_id:nullで使用できます。以下は構文です-
db.yourCollectionName.aggregate([{$group: {_id:null, "anyFieldName": {$avg:"$yourFieldName"} } }]);
まず、ドキュメントを使用してコレクションを作成しましょう-
> db.caculateTheAverageValueDemo.insertOne({"Population":100}); { "acknowledged" : true, "insertedId" : ObjectId("5cd68a197924bb85b3f4895f") } > db.caculateTheAverageValueDemo.insertOne({"Population":500}); { "acknowledged" : true, "insertedId" : ObjectId("5cd68a1c7924bb85b3f48960") } > db.caculateTheAverageValueDemo.insertOne({"Population":200}); { "acknowledged" : true, "insertedId" : ObjectId("5cd68a237924bb85b3f48961") } > db.caculateTheAverageValueDemo.insertOne({"Population":100}); { "acknowledged" : true, "insertedId" : ObjectId("5cd68a297924bb85b3f48962") } > db.caculateTheAverageValueDemo.insertOne({"Population":100}); { "acknowledged" : true, "insertedId" : ObjectId("5cd68a2e7924bb85b3f48963") }
以下は、find()メソッドを使用してコレクションからすべてのドキュメントを表示するためのクエリです-
> db.caculateTheAverageValueDemo.find().pretty();
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5cd68a197924bb85b3f4895f"), "Population" : 100 } { "_id" : ObjectId("5cd68a1c7924bb85b3f48960"), "Population" : 500 } { "_id" : ObjectId("5cd68a237924bb85b3f48961"), "Population" : 200 } { "_id" : ObjectId("5cd68a297924bb85b3f48962"), "Population" : 100 } { "_id" : ObjectId("5cd68a2e7924bb85b3f48963"), "Population" : 100 }
以下は、MongoDBドキュメントの値を平均化するためのクエリです-
> db.caculateTheAverageValueDemo.aggregate([{$group: {_id:null, "AveragePopulation": {$avg:"$Population"} } }]);
これにより、次の出力が生成されます-
{ "_id" : null, "AveragePopulation" : 200 }
-
MongoDBドキュメントの値を1つだけインクリメントしますか?
単一の値のみを更新してMongoDBでインクリメントするには、update()とともに$incを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo698.insertOne({Score:78}); { "acknowledged" : true, "insertedId" : ObjectId("5ea6d8a4551299a9f98c9398") } > db.demo698.insertOne({Score:56}); { &nbs
-
ネストされたドキュメントを更新するMongoDBクエリ?
ネストされたドキュメントを更新するには、update()を使用し、その中でドット表記を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo607.insertOne( ... { ... id:1, ... "Info1" : { ... "Name" : "Chris", ...