2017-02-27 5 views
-1

assert: Befehl fehlgeschlagen: { "ok": 0, "errmsg": „FieldPath‚% Y-% m -% d‘beginnt nicht mit $“, ‚Code‘: 16873 }: Aggregat

fehlgeschlagen

ich habe eine Abfrage unten, die mir einen Fehler geben, die ich nicht loszuwerden.

db.collection.aggregate([ 
    { 
     $match: { 
      'insertedAt': { 
       $gte: ISODate("2017-02-23T01:00:01Z") 
      } 
     } 
    }, 
    { 
     $group : { 
      _id : { 
       isDummy: '$isDummy', 
       $dateToString: { 
        format: '%Y-%m-%d', 
        date: '$insertedAt' 
       } 
      }, 
      count: { $sum: 1 } 
     } 
    } 
]); 
+0

Ich kann nicht upvote, hilf mir, 15 Ruf zu bekommen! – Deamon

+0

Sie müssen nicht upvote. Sie können die Antwort bis jetzt fortführen (akzeptieren) (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) und Sie werden einen gewissen Ruf gewinnen. – Veeram

Antwort

1

$dateToString ist ein Ausdruck, der Zeitpunkt in der gewünschten Format konvertieren verwendet wird. benutze unter einem und du bist bereit zu gehen.

db.collection.aggregate([ 
    { 
     $match: { 
      'insertedAt': { 
       $gte: ISODate("2017-02-23T01:00:01Z") 
      } 
     } 
    }, 
    { 
     $group : { 
      _id : { 
       isDummy: '$isDummy', 
       insertedAt: { 
        $dateToString: { 
        format: '%Y-%m-%d', 
        date: '$insertedAt' 
        } 
       } 
      }, 
      count: { $sum: 1 } 
     } 
    } 
]); 
1

$dateToString ist eine Aggregation Operator und wandelt ein Datum Typ String.

Wechsel zu

_id: { 
    isDummy: '$isDummy', 
    insertedAt: { 
     $dateToString: { 
      format: '%Y-%m-%d', 
      date: '$insertedAt' 
     } 
    } 
} 
Verwandte Themen