J'ai une base de données mongo mise en place. créer un nouvel objet de date dans mongoDb créer un objet de date au format ISO, par exemple: ISODate("2012-07-14T00:00:00Z")
J'utilise node.js pour me connecter à la base de données Mongo et interroger la base de données. chaque fois que je crée un nouvel objet de date (new Date()
) en javascript, il crée un objet de date javascript, par exemple: Wed Mar 06 2013 14:49:51 GMT-0600 (CST)
Y a-t-il un moyen de créer un objet de date ISO en javascript afin que je puisse envoyer l'objet directement à mongoDb et effectuer une requête de date
Je suis capable d'effectuer la requête ci-dessous dans mongoDb
db.schedule_collection.find({
start_date: { '$gte': new Date(2012, 01, 03, 8, 30) }
})
mais je ne peux pas jouer quand j'envoie un objet date javascript depuis un noeud
Le livre de recettes mongodb fournit un exemple python) permettant d'interroger la base de données mongo à l'aide du module datetime, mais ne fournit aucun exemple d'utilisation de javascript.
Toute aide est appréciée. vous remerciant à l'avance
Essayez d'utiliser la chaîne ISO
var isodate = new Date().toISOString()
Voir aussi: définition de la méthode sur MDN .
En nœud, le pilote Mongo vous donnera une chaîne ISO, pas l'objet. (ex: Mon Nov 24 2014 01:30:34 GMT-0800 (PST)
) Donc, convertissez-le simplement en js Date de: new Date(ISOString);
essayez ci-dessous:
var temp_datetime_obj = new Date();
collection.find({
start_date:{
$gte: new Date(temp_datetime_obj.toISOString())
}
}).toArray(function(err, items) {
/* you can console.log here */
});
J'ai résolu ce problème en instanciant un nouvel objet Date dans node.js: ...
En Javascript, envoyez le Date (). ToISOString () à nodejs: ...
var start_date = new Date(2012, 01, 03, 8, 30);
$.ajax({
type: 'POST',
data: { start_date: start_date.toISOString() },
url: '/queryScheduleCollection',
dataType: 'JSON'
}).done(function( response ) { ... });
Puis utilisez ISOString pour créer un nouvel objet Date dans nodejs: ..
exports.queryScheduleCollection = function(db){
return function(req, res){
var start_date = new Date(req.body.start_date);
db.collection('schedule_collection').find(
{ start_date: { $gte: start_date } }
).toArray( function (err,d){
...
res.json(d)
})
}
};
Remarque: j'utilise Express et Mongoskin.