MongoDB集約フレームワークで絶対値を取得しますか?
これには$abs演算子を使用できます。まず、ドキュメントを使用してコレクションを作成しましょう
> db.absoluteValueDemo.insert({"Value":98}); WriteResult({ "nInserted" : 1 }) > db.absoluteValueDemo.insert({"Value":-100}); WriteResult({ "nInserted" : 1 }) > db.absoluteValueDemo.insert({"Value":0}); WriteResult({ "nInserted" : 1 }) > db.absoluteValueDemo.insert({"Value":-9999990}); WriteResult({ "nInserted" : 1 })
以下は、find()メソッドを使用してコレクションからすべてのドキュメントを表示するためのクエリです。
> db.absoluteValueDemo.find().pretty();
これにより、次の出力が生成されます
{ "_id" : ObjectId("5ca271f56304881c5ce84b9a"), "Value" : 98 } { "_id" : ObjectId("5ca271fa6304881c5ce84b9b"), "Value" : -100 } { "_id" : ObjectId("5ca271fe6304881c5ce84b9c"), "Value" : 0 } { "_id" : ObjectId("5ca2720f6304881c5ce84b9d"), "Value" : -9999990 }
以下は、MongoDB集約フレームワークで絶対値を取得するためのクエリです
> db.absoluteValueDemo.aggregate({ $project: { AbsoluteValue: { $abs: '$Value' } }});
これにより、次の出力が生成されます
{ "_id" : ObjectId("5ca271f56304881c5ce84b9a"), "AbsoluteValue" : 98 } { "_id" : ObjectId("5ca271fa6304881c5ce84b9b"), "AbsoluteValue" : 100 } { "_id" : ObjectId("5ca271fe6304881c5ce84b9c"), "AbsoluteValue" : 0 } { "_id" : ObjectId("5ca2720f6304881c5ce84b9d"), "AbsoluteValue" : 9999990 }
-
マークが最も少ない2つのドキュメントを取得するためのMongoDB集計
ソートされたマークのリストを取得するには、$sortを使用します。 $ limit:2を使用します マークが最も少ないそのようなドキュメントを2つだけ表示します。ドキュメントを使用してコレクションを作成しましょう- > db.demo709.insertOne({Name:"John","Marks":75}); { "acknowledged" : true, "insertedId" : ObjectId("5ea839005d33e20ed
-
MongoDB集計で複数のフィールドでカウント
複数のフィールドでカウントするには、MongoDBで$facetを使用します。 $ facetは、同じ入力ドキュメントのセットの単一ステージ内で複数の集約パイプラインを処理します。ドキュメントを使用してコレクションを作成しましょう- > db.demo721.insertOne( ... { ... ... "details1": { ... "id":101 ... ...