ISODate non déterminé

J'essaie d'obtenir des résultats de mongodb, Utilisant nodejs/mongoose.


var dateStr = new Date/year,month,day,0,0,0/;
var nextDate = new Date/year,month,day,23,59,59/;

GPSData.find/{"createdAt" : { $gte : new ISODate/dateStr/, $lte: new ISODate/nextDate/ }}, function/err, data/ {
if/err/
console.log/err/;
}/;


Erreur:
ISODate is not defined
Invité:

Emile

Confirmation de:

Notez que
ISODate

est une partie MongoDB Et dans votre cas n'est pas disponible. Au lieu de cela, vous devez utiliser
Date

, Et pilotes MongoDB/par exemple, Mongoose ORM, que vous utilisez pour le moment/ Nous nous occuperons de la conversion du type entre
Date

et
ISODate

Dans les coulisses.

Blanche

Confirmation de:

Dans mon cas, j'ai converti une demande avec ISODates


let dateString = "2014-01-22T14:56:59.301Z";

$gte : ISODate/dateStr/


dans node.js est un


$gte : new Date/dateStr/

Darius

Confirmation de:

Vous pouvez simplement utiliser comment convertir la date de la chaîne. ISO :


GPSData.find/{"createdAt" : { $gte : new Date/year,month,day,0,0,0/.toISOString//, $lte: new Date/year,month,day,23,59,59/.toISOString// }}, function/err, data/ {
if/err/
console.log/err/;
}/;

Emile

Confirmation de:

Au lieu ISO Utilisation "new Date" nouer JS va prendre soin de vous ISO, ISO Pas besoin d'écrire juste une utilisation "new Date"

Gilles

Confirmation de:

Date de conversion au format MongoDB ISODate dans JavaScript En utilisant le moment JS

MongoDB Les usages ISODate Comme type de date principal. Si vous souhaitez insérer la date d'objet à la collection MongoDB, vous pouvez utiliser

méthode Date// shell.

Vous pouvez spécifier une date spécifique en passant la chaîne de date ISO-8601 avec l'année dans la gamme de 0 avant que 9999 Inclusif B.

Nouveau

constructeur Date// ou fonction ISODate//. Ces fonctions prennent les formats suivants:

new Date /
"<yyyy-mm-dd>"

/

Retour ISODate avec la date spécifiée.

Nouvelle date /
"<yyyy-mm-ddthh:mm:ss>"

/

Indique datetime en local timezone Client et retour ISODate avec spécifié datetime dans UTC.

Nouvelle date /
"<yyyy-mm-ddthh:mm:ssz>"

/

Indique datetime dans UTC Et retourne ISODate avec spécifié datetime dans UTC.

new Date// Indique datetime comme millisecondes dès le moment Unix Époques /1 janvier 1970 de l'année/ et retourne l'instance résultante ISODate.

Si vous écrivez du code dans JavaScript et vouloir transférer l'objet JavaScript date et utilisez-le avec le client MongoDB, La première chose que vous faites est de transformer JavaScript date au format MongoDB date /ISODate/. C'est comme ça que ça se fait.


var today = moment/new Date///.format/'YYYY-MM-DD[T00:00:00.000Z]'/;
console.log/"Next day -- " + /reqDate.getDate// + 1//
var d = new Date//;
d.setDate/reqDate.getDate// + 1/;
var tomorrow = moment/d/.format/'YYYY-MM-DD[T00:00:00.000Z]'/;


Vous pouvez passer l'objet today et tomorrow Enquête MongoDB Avec l'aide d'une nouvelle méthode Date// shell.


MongoClient.connect/con, function /err, db/ {
if /err/ throw err
db.collection/'orders'/.find/{ "order_id": store_id, "orderDate": {
"$gte": new Date/today/, "$lt": new Date/tomorrow/}
}/.toArray/function /err, result/ {
console.log/result/;
if /err/ throw err
res.send/result/;
}/
}/


</yyyy-mm-ddthh:mm:ssz></yyyy-mm-ddthh:mm:ss></yyyy-mm-dd>

Denis

Confirmation de:

if /req.params.sDate && req.params.eDate/ {
query["createdAt"] = {
$gte: new Date/"2020-01-25"/.toISOString//,
$lte: new Date/"2020-09-25"/.toISOString//
};
}

console.log/"query", query, req.params.limit, req.params.skip/;
domain.Payment.find/query/
.limit/req.params.limit/
.skip/req.params.skip/
.sort/{ createdAt: -1 }/
.exec//err, list/ => {
console.log/"err", err/;

if /err || !list/ {
callback/err, null/;
} else {

Pour répondre aux questions, connectez-vous ou registre