2017-03-24 22 views
-1

私の集計でカウントを取得しようとしていますが、何らかの理由で「$ count」が認識できない集計ステージであるというエラーが表示されます。 私は両方でこれを試してみたモンゴ3.0と3.4のシェル集計時のmongodbカウント

db.collection1.aggregate([ 
    {$match:{'field1': "abc"}}, 
    {$count:"mycount"} 
]) 
+1

3.4 mongodサーバーインスタンスに対してシェルを実行していることを確認できますか? db.version()をシェルで実行して確認します。 – Veeram

+0

mongodのバージョンは実際には3.0.11ですが、私が使用しているクライアントは3.4なので、その理由を説明するかもしれません – IsaacBok

答えて

1

$あなたは下のバージョンでは、あなたのアグリゲーションパイプラインでカウントする$グループを使用することができますMongoDBの3.4に

を動作するはずを数えます:

db.collection1.aggregate([ 
    {$match: {'field1': "abc"}}, 
    {$group: { 
     _id : null, 
     aggregationCount : {$sum : 1} 
    }} 
]) 
+0

何が速く返ってくると思いますか?それとも本質的に同じことをする検索クエリですか? – IsaacBok

+0

'field1'(実際にネストされている)が索引付けされていても、集約には時間がかかります – IsaacBok

+0

@IsaacBok問合せが実行中の場合長い時間がかかりますが、これは別の問題です。 [Explain Results](https://docs.mongodb.com/manual/reference/explain-results/)機能を使用して調べる必要があります。 –