実現したいこと
MongoDBのaggregationにおいて、期待する構造のオブジェクトで返り値を得たい。
前提
ModelContent
が3つ入ってるとします。
await Content.create({name: 'Example1', status: 'public'}); await Content.create({name: 'Example2', status: 'public'}); await Content.create({name: 'Example3', status: 'draft'});
発生している問題
Status
毎の数を得たいので、下記のようにコードにすると、
const result = await Content.aggregate([ { $group: { _id: '$status', quantity: { $sum: 1 } } } ]);
result
の値は、下記のようなオブジェクト型の配列になります。
[ { _id: 'draft', quantity: 1 }, { _id: 'public', quantity: 2 } ]
期待する構造
下記のような構造でMongoDB
から返される方法はないか模索をしています。
特に_id
が消えると期待する形に近くなります。
[{ draft: { quantity:1 }}, {public: {quantity: 2}}]
補足
Javascriptで整形することはできますが、あくまでMongoDBで行う方法を模索しています。
ご存知の方、いらっしゃったらよろしくお願いします。
補足情報
nodejs
/ mongoose
/ db.collection.aggregateのリファレンス
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。