2017-12-07 14 views
0
   { 
       $addFields: { 
        date: {$substr : ["$visits.visit_date", 0,10]} 
       } 
       }, 
       { 
        $project:{ 
         now: new Date(), 
         returns: new Date("2017-09-14"), 
         visit_date: "$visits.visit_date", 
         //dateDifference: { $subtract: [ new Date(), "$visits.visit_date" ] }, 

         split: "$date", 
         dates: new Date("$date") 
        } 
       } 

Dieses Projekt RückkehrString to date() Funktion nicht korrekt ISO Datum Rückkehr

{ 
    "_id" : ObjectId("5a26856f462c9616abc98d60"), 
    "now" : ISODate("2017-12-06T22:21:31.499-06:30"), 
    "returns" : ISODate("2017-09-13T17:30:00.000-06:30"), 
    "visit_date" : "2017-09-14 18:37:58", 
    "split" : "2017-09-14", 
    "dates" : ISODate("1969-12-31T17:30:00.000-06:30") 
} 

dies sehen hier bekomme ich Probleme, es ist keine korrekte Ausgabe

"Termine": ISODate ("1969-12-31T17: 30: 00.000-06: 30")

, weil ich eine korrekte Ausgabe erhalten, während manuell eine Zeichenfolge hinzufügen

"Erträge": isodate ("2017-09-13T17: 30: 00.000-06: 30"),

Antwort

0

Leider ist Ihre Code in der oberen Box ist unvollständig.

Versuchen Sie, das Datum an einer Stelle in der Struktur zur gleichen Zeit wie an anderer Stelle einzustellen?

0

new Date ("$ date") ausgewertet, bevor diese übergeben wird Aggregation Pipeline MongoDB und bis dahin "$ date" ist nur eine normale Zeichenfolge Javascript engin

für MongoDB 3.6 können Sie verwenden

db.coll.aggregate([ 
{ 
    $project:{ 

    date:{ 
     $dateFromString: { 
      dateString: "$visits.visit_date" 
     } 
     } 
    } 
} 
+0

Ich bekomme diesen Fehler 'Unbekannter Ausdruck' $ dateFromString ' – gowtham

+0

mongodb 3.6 erforderlich – Shubham

+0

meine letzte Version ist 3.4 Ich versuche zu aktualisieren, aber es ist nicht getan? – gowtham