2017-03-23 8 views
1

私はMongoose(Node.js)でMongoDBを使用しており、集計の結果をグループ化する必要があります。
と同様に、空の配列からMongoDBグループには何も返されません。

db.test.aggregate([ 
    { 
     $match: { 
      type: 1 
     } 
    }, 
    { 
    $group : { 
     _id : null, 
     count: { $sum: 1 } 
    } 
    } 
]) 

それらのどれもが一致されていない場合はマッチした10の項目がある場合、その結果は

[ 
    { 
    "_id": null, 
    "count": 10 
    } 
] 

だろう確かに、私は結果が

[ 
    { 
    "_id": null, 
    "count": 0 
    } 
] 
ことを期待

しかし、私はこのケースで次の結果を得ました。

[] 

期待どおりの結果を得たい場合はどうすればよいですか?
ご利用いただきありがとうございます。

+1

これは、ライブラリの動作方法です。ソースを変更しない限り、実際にその動作を変更することはできません。 – JPL

+0

私はそれがどのように動作するのか理解しています。しかし、私は何らかの操作でその結果を得る方法を知りたい。 – Jung

答えて

1

:ような何かを試してみてください一致がありません。

+0

しかし、私はさらなる目的のために集計を使用する必要があります。 – Jung

+1

質問に指定していない –

+0

ごめんなさい。この集約は、私の集計全体の唯一の部分であり、この部分のために使用できません。 – Jung

-1

何かでグループ化する必要があります(_idはnullであってはなりません)。たとえば0場合のために、

db.collection.count({ 
    type: 1 
}); 

それは常に何かを返す:あなたはマッチしたアイテムをカウントする簡単なcountを使用することができ、aggregate必要はありません。この場合、

db.test.aggregate([ 
    { 
     $match: { 
      type: 1 
     } 
    }, 
    { 
    $group : { 
     _id : "$type", 
     count: { $sum: 1 } 
    } 
    } 
]) 
+0

まだ何も返しません... – Jung

関連する問題